Funzione NtOpenProcessToken (ntifs.h)
La routine NtOpenProcessToken apre il token di accesso associato a un processo e restituisce un handle che può essere usato per accedere a tale token.
Sintassi
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenProcessToken(
[in] HANDLE ProcessHandle,
[in] ACCESS_MASK DesiredAccess,
[out] PHANDLE TokenHandle
);
Parametri
[in] ProcessHandle
Gestire il processo il cui token di accesso deve essere aperto. L'handle deve avere accesso PROCESS_QUERY_INFORMATION. Utilizzare la macro NtCurrentProcess , definita in Ntddk.h, per specificare il processo corrente.
[in] DesiredAccess
ACCESS_MASK struttura che specifica i tipi richiesti di accesso al token di accesso. Questi tipi di accesso richiesti vengono confrontati con l'elenco DACL (Discretionary Access Control List) del token per determinare quali accessi vengono concessi o negati.
[out] TokenHandle
Puntatore a una variabile allocata dal chiamante che riceve un handle per il token di accesso appena aperto.
Valore restituito
NtOpenProcessToken restituisce STATUS_SUCCESS o uno stato di errore appropriato. I codici di stato di errore possibili includono quanto segue:
Codice restituito | Descrizione |
---|---|
STATUS_ACCESS_DENIED | ProcessHandle non ha avuto accesso PROCESS_QUERY_INFORMATION. |
STATUS_INSUFFICIENT_RESOURCES | Non è stato possibile allocare un nuovo handle di token. |
STATUS_INVALID_HANDLE | ProcessHandle non è un handle valido. |
STATUS_OBJECT_TYPE_MISMATCH | ProcessHandle non è un handle di processo. |
STATUS_PRIVILEGE_NOT_HELD | Il chiamante non dispone del privilegio (SeSecurityPrivilege) necessario per creare un handle di token con l'accesso specificato nel parametro DesiredAccess . |
STATUS_QUOTA_EXCEEDED | La quota di memoria del processo non è sufficiente per allocare l'handle del token. |
STATUS_UNSUCCESSFUL | Impossibile creare l'handle del token. |
Commenti
Per specificare gli attributi per l'handle del token di accesso, usare invece NtOpenProcessTokenEx .
L'handle può essere accessibile dal processo nel cui contesto è in esecuzione il driver.
Qualsiasi handle ottenuto chiamando NtOpenProcessToken deve essere rilasciato chiamando NtClose.
Per altre informazioni sulla sicurezza e sul controllo di accesso, vedere Modello di sicurezza di Windows per sviluppatori di driver e la documentazione su questi argomenti in Windows SDK.
Per le chiamate da driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Servizi di sistema nativi di Windows possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines .For more information about the Nt Xxx and Zw versions of the Native System Services Routines.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntifs.h |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |