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 :

Indicateur 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 Dupliquer des handles vers ou depuis le contexte du processus, par exemple en appelant la routine DuplicateHandle en mode utilisateur.
PROCESS_SET_QUOTA Définissez la taille de l’ensemble de travail pour le processus, par exemple en appelant la routine SetProcessWorkingSetSize en mode utilisateur.
PROCESS_SET_INFORMATION Modifiez les paramètres de processus, par exemple en appelant la routine SetPriorityClass en mode utilisateur.
PROCESS_SUSPEND_RESUME Suspendez ou reprenez le processus.
PROCESS_TERMINATE Terminez le processus, par exemple en appelant la routine TerminateProcess en mode utilisateur..
PROCESS_VM_OPERATION Modifiez l’espace d’adressage du processus, par exemple en appelant les routines WriteProcessMemory et VirtualProtectEx en mode utilisateur.
PROCESS_VM_WRITE Écrivez dans l’espace d’adressage du processus, par exemple en appelant la routine WriteProcessMemory en mode utilisateur.
 

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

Indicateur Opérations autorisées
THREAD_DIRECT_IMPERSONATION Activez un thread de serveur pour 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 la routine ImpersonateAnonymousToken en mode utilisateur.
THREAD_SET_CONTEXT Modifiez le contexte d’exécution du thread, par exemple en appelant la routine SetThreadContext en mode utilisateur.
THREAD_SET_INFORMATION Modifiez les paramètres de thread, par exemple en appelant la routine SetThreadIdealProcessor en mode utilisateur. Les opérations autorisées par ce droit d’accès sont un sur-ensemble de celles autorisées 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 les routines SetThreadAffinityMask et SetThreadPriorityBoost en mode utilisateur.
THREAD_SET_THREAD_TOKEN Modifiez les propriétés du jeton d’emprunt d’identité du thread, par exemple en appelant la routine SetTokenInformation en mode utilisateur.
THREAD_SUSPEND_RESUME Suspendez ou reprenez le thread, par exemple en appelant les routines SuspendThread et ResumeThread en mode utilisateur.
THREAD_TERMINATE Terminez le thread, par exemple en appelant la routine TerminateThread en mode utilisateur.

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é en tant qu’indicateur modifiable, le droit d’accès peut être supprimé.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Server 2008 et versions ultérieures du système d’exploitation Windows.
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)

Voir aussi

ACCESS_MASK

ObjectPreCallback