Поделиться через


структура 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)

См. также раздел

ACCESS_MASK

ObjectPreCallback