Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die NtOpenProcessToken Routine öffnet das einem Prozess zugeordnete Zugriffstoken und gibt ein Handle zurück, das für den Zugriff auf dieses Token verwendet werden kann.
Syntax
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenProcessToken(
[in] HANDLE ProcessHandle,
[in] ACCESS_MASK DesiredAccess,
[out] PHANDLE TokenHandle
);
Parameter
[in] ProcessHandle
Behandeln Sie den Prozess, dessen Zugriffstoken geöffnet werden soll. Das Handle muss über PROCESS_QUERY_INFORMATION Zugriff verfügen. Verwenden Sie das NtCurrentProcess Makro, das in Ntddk.hdefiniert ist, um den aktuellen Prozess anzugeben.
[in] DesiredAccess
ACCESS_MASK Struktur, die die angeforderten Zugriffstypen für das Zugriffstoken angibt. Diese angeforderten Zugriffstypen werden mit der diskretionären Zugriffssteuerungsliste (DACL-) des Tokens verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.
[out] TokenHandle
Zeiger auf eine vom Aufrufer zugewiesene Variable, die ein Handle für das neu geöffnete Zugriffstoken empfängt.
Rückgabewert
NtOpenProcessToken gibt STATUS_SUCCESS oder einen entsprechenden Fehlerstatus zurück. Mögliche Fehlerstatuscodes sind:
Rückgabecode | Beschreibung |
---|---|
STATUS_ACCESS_DENIED | ProcessHandle- haben keinen PROCESS_QUERY_INFORMATION Zugriff. |
STATUS_INSUFFICIENT_RESOURCES | Ein neues Tokenhandle konnte nicht zugewiesen werden. |
STATUS_INVALID_HANDLE | ProcessHandle- war kein gültiger Handle. |
STATUS_OBJECT_TYPE_MISMATCH | ProcessHandle- kein Prozesshandle war. |
STATUS_PRIVILEGE_NOT_HELD | Der Aufrufer verfügt nicht über die berechtigung (SeSecurityPrivilege), die zum Erstellen eines Tokenhandle mit dem im parameter DesiredAccess angegebenen Zugriff erforderlich ist. |
STATUS_QUOTA_EXCEEDED | Das Speicherkontingent des Prozesses reicht nicht aus, um das Tokenhandle zuzuweisen. |
STATUS_UNSUCCESSFUL | Das Tokenhandle konnte nicht erstellt werden. |
Bemerkungen
Um Attribute für das Zugriffstokenhandle anzugeben, verwenden Sie stattdessen NtOpenProcessTokenEx-.
Auf das Handle kann über den Prozess zugegriffen werden, in dem der Kontext ausgeführt wird, in dem der Treiber ausgeführt wird.
Jedes Handle, das durch Aufrufen von NtOpenProcessToken abgerufen wird, muss schließlich durch Aufrufen von NtClosefreigegeben werden.
Weitere Informationen zur Sicherheits- und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und die Dokumentation zu diesen Themen im Windows SDK.
Bei Aufrufen von Kernelmodustreibern können sich die NtXxx und ZwXxx- Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntifs.h |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |