2012-05-23 3 views
2

Простой вопрос, но есть ли вызов API win32 для извлечения, если дескриптор процесса имеет флаг доступа PROCESS_QUERY_INFORMATION, чтобы успешно позвонить IsWow64Process? AccessCheck Function - MSDN похоже, что это сработает, но я не уверен, проверяет ли он те же флаги.IsWow64Process PROCESS_QUERY_INFORMATION проверка на дескрипторе процесса

+3

Почему бы просто не вызвать 'IsWow64Process()' безоговорочно и обработать любую ошибку, которую он мог бы вернуть? Это было бы намного проще, чем пытаться вникнуть в внутреннюю систему системы безопасности. –

+0

Да, я решил, что могу это сделать, но я просто хотел знать, есть ли способ сделать это иначе:] – Qix

+1

Это может быть очевидно, но на странице MSDN не сказано: 'GetLastError()' возвращает 'ERROR_ACCESS_DENIED' (0x5) при попытке использовать 'IsWow64Process()' для дескриптора, у которого нет необходимых флагов доступа. –

ответ

2

Посмотрите на функцию NtQueryObject(). Задайте свой параметр ObjectInformationClass на номер ObjectBasicInformation, чтобы запросить структуру ручки PUBLIC_OBJECT_BASIC_INFORMATION, в которой есть член GrantedAccess типа ACCESS_MASK, который может содержать PROCESS_QUERY_INFORMATION.

 Смежные вопросы

  • Нет связанных вопросов^_^