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) |