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 例程可以修改此值以限制授予的访问权限。

驱动程序可以将以下标志用于进程的句柄:

标志 允许的操作
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 修改进程的地址空间,例如通过调用用户模式 WriteProcessMemoryVirtualProtectEx 例程。
PROCESS_VM_WRITE 写入进程的地址空间,例如通过调用用户模式 WriteProcessMemory 例程。
 

驱动程序可以将以下标志用于线程的句柄:

标志 允许的操作
THREAD_DIRECT_IMPERSONATION 启用服务器线程以模拟其客户端之一。
THREAD_IMPERSONATE 模拟操作系统的匿名登录令牌,例如通过调用用户模式 ImpersonateAnonymousToken 例程。
THREAD_SET_CONTEXT 修改线程的执行上下文,例如通过调用用户模式 SetThreadContext 例程。
THREAD_SET_INFORMATION 修改线程设置,例如通过调用用户模式 SetThreadIdealProcessor 例程。 此访问权限允许的操作是THREAD_SET_LIMITED_INFORMATION访问权限允许的操作的超集。
THREAD_SET_LIMITED_INFORMATION 修改一组有限的线程设置,例如通过调用用户模式 SetThreadAffinityMaskSetThreadPriorityBoost 例程。
THREAD_SET_THREAD_TOKEN 修改线程模拟令牌的属性,例如通过调用用户模式 SetTokenInformation 例程。
THREAD_SUSPEND_RESUME 暂停或恢复线程,例如通过调用用户模式 SuspendThreadResumeThread 例程。
THREAD_TERMINATE 终止线程,例如通过调用用户模式 TerminateThread 例程。

OriginalDesiredAccess

一个 ACCESS_MASK 值,该值指定为句柄请求的原始访问权限。

注解

你永远不能添加 超出 DesiredAccess 成员中指定的访问权限。 如果访问权限列为可修改标志,则可以删除访问权限。

要求

要求
最低受支持的客户端 在 Windows Server 2008 及更高版本的 Windows 操作系统中可用。
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)

另请参阅

ACCESS_MASK

ObjectPreCallback