struttura OB_PRE_CREATE_HANDLE_INFORMATION (wdm.h)

La struttura OB_PRE_CREATE_HANDLE_INFORMATION fornisce informazioni a una routine ObjectPreCallback relativa a un thread o a un handle di processo aperto.

Sintassi

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

Members

DesiredAccess

Valore ACCESS_MASK che specifica i diritti di accesso da concedere per l'handle. Per impostazione predefinita, questo membro è uguale a OriginalDesiredAccess, ma la routine ObjectPreCallback può modificare questo valore per limitare l'accesso concesso.

I driver possono usare i flag seguenti per gli handle per i processi:

Contrassegno Operazioni consentite
PROCESS_CREATE_PROCESS Creare un nuovo processo figlio del processo.
PROCESS_CREATE_THREAD Creare un nuovo thread nel contesto del processo.
PROCESS_DUP_HANDLE Handle duplicati da o verso il contesto del processo, ad esempio chiamando la routine DuplicateHandle in modalità utente.
PROCESS_SET_QUOTA Impostare le dimensioni del working set per il processo, ad esempio chiamando la routine SetProcessWorkingSetSize in modalità utente.
PROCESS_SET_INFORMATION Modificare le impostazioni del processo, ad esempio chiamando la routine SetPriorityClass in modalità utente.
PROCESS_SUSPEND_RESUME Sospendere o riprendere il processo.
PROCESS_TERMINATE Terminare il processo, ad esempio chiamando la routine TerminateProcess in modalità utente.
PROCESS_VM_OPERATION Modificare lo spazio degli indirizzi del processo, ad esempio chiamando le routine WriteProcessMemory e VirtualProtectEx in modalità utente.
PROCESS_VM_WRITE Scrivere nello spazio indirizzi del processo, ad esempio chiamando la routine WriteProcessMemory in modalità utente.
 

I driver possono usare i flag seguenti per gli handle ai thread:

Contrassegno Operazioni consentite
THREAD_DIRECT_IMPERSONATION Abilitare un thread del server per rappresentare uno dei client.
THREAD_IMPERSONATE Rappresenta il token di accesso anonimo del sistema operativo, ad esempio chiamando la routine ImpersonateAnonymousToken in modalità utente.
THREAD_SET_CONTEXT Modificare il contesto di esecuzione del thread, ad esempio chiamando la routine SetThreadContext in modalità utente.
THREAD_SET_INFORMATION Modificare le impostazioni del thread, ad esempio chiamando la routine SetThreadIdealProcessor in modalità utente. Le operazioni consentite da questo diritto di accesso sono un superset di quelle consentite dal diritto di accesso THREAD_SET_LIMITED_INFORMATION.
THREAD_SET_LIMITED_INFORMATION Modificare un set limitato di impostazioni del thread, ad esempio chiamando le routine SetThreadAffinityMask e SetThreadPriorityBoost .
THREAD_SET_THREAD_TOKEN Modificare le proprietà del token di rappresentazione del thread, ad esempio chiamando la routine SetTokenInformation in modalità utente.
THREAD_SUSPEND_RESUME Sospendere o riprendere il thread, ad esempio chiamando le routine SuspendThread e ResumeThread in modalità utente.
THREAD_TERMINATE Terminare il thread, ad esempio chiamando la routine TerminateThread in modalità utente.

OriginalDesiredAccess

Valore ACCESS_MASK che specifica l'accesso originale richiesto per l'handle.

Commenti

Non è mai possibile aggiungere diritti di accesso oltre a quanto specificato nel membro DesiredAccess . Se il diritto di accesso è elencato come flag modificabile, il diritto di accesso può essere rimosso.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Server 2008 e versioni successive del sistema operativo Windows.
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)

Vedi anche

ACCESS_MASK

ObjectPreCallback