структура OB_PRE_CREATE_HANDLE_INFORMATION (wdm.h)
Структура OB_PRE_CREATE_HANDLE_INFORMATION предоставляет подпрограмме ObjectPreCallback сведения о открываемом потоке или дескрипторе процесса.
Синтаксис
typedef struct _OB_PRE_CREATE_HANDLE_INFORMATION {
ACCESS_MASK DesiredAccess;
ACCESS_MASK OriginalDesiredAccess;
} OB_PRE_CREATE_HANDLE_INFORMATION, *POB_PRE_CREATE_HANDLE_INFORMATION;
Члены
DesiredAccess
Значение ACCESS_MASK , указывающее права доступа, предоставляемые дескриптору. По умолчанию этот элемент равен OriginalDesiredAccess, но подпрограмма ObjectPreCallback может изменить это значение, чтобы ограничить предоставленный доступ.
Драйверы могут использовать следующие флаги для дескрипторов процессов:
Flag | Разрешенные операции |
---|---|
PROCESS_CREATE_PROCESS | Создайте новый дочерний процесс процесса. |
PROCESS_CREATE_THREAD | Создайте новый поток в контексте процесса. |
PROCESS_DUP_HANDLE | Дублирует дескриптор в контексте процесса или из контекста процесса, например путем вызова процедуры DuplicateHandle в пользовательском режиме. |
PROCESS_SET_QUOTA | Задайте размер рабочего набора для процесса, например путем вызова процедуры SetProcessWorkingSetSize в пользовательском режиме. |
PROCESS_SET_INFORMATION | Измените параметры процесса, например вызовите подпрограмму SetPriorityClass в пользовательском режиме. |
PROCESS_SUSPEND_RESUME | Приостановите или возобновите процесс. |
PROCESS_TERMINATE | Завершите процесс, например вызовом процедуры TerminateProcess в пользовательском режиме. |
PROCESS_VM_OPERATION | Измените адресное пространство процесса, например путем вызова процедур WriteProcessMemory и VirtualProtectEx в пользовательском режиме. |
PROCESS_VM_WRITE | Запись в адресное пространство процесса, например путем вызова процедуры WriteProcessMemory в пользовательском режиме. |
Драйверы могут использовать следующие флаги для дескрипторов потоков:
Flag | Разрешенные операции |
---|---|
THREAD_DIRECT_IMPERSONATION | Включите поток сервера для олицетворения одного из своих клиентов. |
THREAD_IMPERSONATE | Олицетворите анонимный маркер входа операционной системы, например вызовите подпрограмму ImpersonateAnonymousToken в пользовательском режиме. |
THREAD_SET_CONTEXT | Измените контекст выполнения потока, например вызовите подпрограмму SetThreadContext в пользовательском режиме. |
THREAD_SET_INFORMATION | Измените параметры потока, например вызовите подпрограмму SetThreadIdealProcessor в пользовательском режиме. Операции, разрешенные этим правом доступа, являются надмножеством операций, разрешенных THREAD_SET_LIMITED_INFORMATION правом доступа. |
THREAD_SET_LIMITED_INFORMATION | Измените ограниченный набор параметров потока, например вызовите процедуры SetThreadAffinityMask и SetThreadPriorityBoost в пользовательском режиме. |
THREAD_SET_THREAD_TOKEN | Измените свойства токена олицетворения потока, например путем вызова подпрограммы SetTokenInformation в пользовательском режиме. |
THREAD_SUSPEND_RESUME | Приостановите или возобновите поток, например вызовите процедуры SuspendThread и ResumeThread в пользовательском режиме. |
THREAD_TERMINATE | Завершите поток, например вызовом подпрограммы TerminateThread в пользовательском режиме. |
OriginalDesiredAccess
Значение ACCESS_MASK, указывающее исходный доступ, запрошенный для дескриптора.
Комментарии
Вы никогда не можете добавить права доступа помимо того, что указано в элементе DesiredAccess . Если право доступа указано в качестве изменяемого флага, право доступа можно удалить.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Server 2008 и более поздних версиях операционной системы Windows. |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |