Partager via


structure OB_PRE_CREATE_HANDLE_INFORMATION (wdm.h)

La structure OB_PRE_CREATE_HANDLE_INFORMATION fournit des informations à une routine ObjectPreCallback sur un thread ou un handle de processus en cours d’ouverture.

Syntaxe

typedef struct _OB_PRE_CREATE_HANDLE_INFORMATION {
  ACCESS_MASK DesiredAccess;
  ACCESS_MASK OriginalDesiredAccess;
} OB_PRE_CREATE_HANDLE_INFORMATION, *POB_PRE_CREATE_HANDLE_INFORMATION;

Membres

DesiredAccess

Valeur ACCESS_MASK qui spécifie les droits d’accès à accorder pour le handle. Par défaut, ce membre est égal à OriginalDesiredAccess, mais la routine ObjectPreCallback peut modifier cette valeur pour restreindre l’accès accordé.

Les pilotes peuvent utiliser les indicateurs suivants pour les handles aux processus :

Drapeau Opérations autorisées
PROCESS_CREATE_PROCESS Créez un processus enfant du processus.
PROCESS_CREATE_THREAD Créez un thread dans le contexte du processus.
PROCESS_DUP_HANDLE Des handles en double vers ou depuis le contexte du processus, par exemple en appelant la routine DuplicateHandle en mode utilisateur.
PROCESS_SET_QUOTA Définissez la taille du jeu de travail pour le processus, par exemple en appelant le mode utilisateur SetProcessWorkingSetSize routine.
PROCESS_SET_INFORMATION Modifiez les paramètres de processus, par exemple en appelant le mode utilisateur SetPriorityClass routine.
PROCESS_SUSPEND_RESUME Suspendez ou reprenez le processus.
PROCESS_TERMINATE Terminez le processus, par exemple en appelant le mode utilisateur TerminateProcess routine..
PROCESS_VM_OPERATION Modifiez l’espace d’adressage du processus, par exemple en appelant le mode utilisateur writeProcessMemory et routines VirtualProtectEx.
PROCESS_VM_WRITE Écrivez dans l’espace d’adressage du processus, par exemple en appelant le mode utilisateur WriteProcessMemory routine.
 

Les pilotes peuvent utiliser les indicateurs suivants pour les handles aux threads :

Drapeau Opérations autorisées
THREAD_DIRECT_IMPERSONATION Permettre à un thread de serveur d’emprunter l’identité de l’un de ses clients.
THREAD_IMPERSONATE Empruntez l’identité du jeton d’ouverture de session anonyme du système d’exploitation, par exemple en appelant le mode utilisateur ImpersonateAnonymousToken routine.
THREAD_SET_CONTEXT Modifiez le contexte d’exécution du thread, par exemple en appelant le mode utilisateur SetThreadContext routine.
THREAD_SET_INFORMATION Modifiez les paramètres de thread, par exemple en appelant le mode utilisateur SetThreadIdealProcessor routine. Les opérations autorisées par ce droit d’accès sont un sur-ensemble de ceux autorisés par le droit d’accès THREAD_SET_LIMITED_INFORMATION.
THREAD_SET_LIMITED_INFORMATION Modifiez un ensemble limité de paramètres de thread, par exemple en appelant le mode utilisateur SetThreadAffinityMask et routines SetThreadPriorityBoost.
THREAD_SET_THREAD_TOKEN Modifiez les propriétés du jeton d’emprunt d’identité du thread, par exemple en appelant le mode utilisateur SetTokenInformation routine.
THREAD_SUSPEND_RESUME Suspendez ou reprenez le thread, par exemple en appelant les routines SuspendThread et ResumeThread routines.
THREAD_TERMINATE Terminez le thread, par exemple en appelant le mode utilisateur terminateThread routine.

OriginalDesiredAccess

Valeur ACCESS_MASK qui spécifie l’accès d’origine demandé pour le handle.

Remarques

Vous ne pouvez jamais ajouter de droits d’accès au-delà de ce qui est spécifié dans le membre DesiredAccess. Si le droit d’accès est répertorié comme indicateur modifiable, le droit d’accès peut être supprimé.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Server 2008 et versions ultérieures du système d’exploitation Windows.
d’en-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)

Voir aussi

ACCESS_MASK

ObjectPreCallback