Freigeben über


ZwOpenProcessTokenEx-Funktion (ntifs.h)

Die ZwOpenProcessTokenEx Routine öffnet das einem Prozess zugeordnete Zugriffstoken.

Syntax

NTSYSAPI NTSTATUS ZwOpenProcessTokenEx(
  [in]  HANDLE      ProcessHandle,
  [in]  ACCESS_MASK DesiredAccess,
  [in]  ULONG       HandleAttributes,
  [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.h definiert 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.

[in] HandleAttributes

Attribute für das Zugriffstokenhandle. Derzeit wird nur OBJ_KERNEL_HANDLE unterstützt. Wenn der Aufrufer nicht im Systemprozesskontext ausgeführt wird, muss er OBJ_KERNEL_HANDLE für diesen Parameter angeben.

[out] TokenHandle

Zeiger auf eine vom Aufrufer zugewiesene Variable, die ein Handle für das neu geöffnete Zugriffstoken empfängt.

Rückgabewert

ZwOpenProcessTokenEx 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_INVALID_PARAMETER Die angegebene HandleAttributes- enthielt keine OBJ_KERNEL_HANDLE.
STATUS_OBJECT_TYPE_MISMATCH ProcessHandle- kein Prozesshandle war.
STATUS_PRIVILEGE_NOT_HELD Der Aufrufer verfügt nicht über die erforderlichen Berechtigungen (SeSecurityPrivilege), um ein Tokenhandle mit dem im parameter DesiredAccess angegebenen Zugriff zu erstellen.
STATUS_QUOTA_EXCEEDED Das Speicherkontingent des Prozesses reicht nicht aus, um das Tokenhandle zuzuweisen.
STATUS_UNSUCCESSFUL Das Tokenhandle konnte nicht erstellt werden.

Bemerkungen

ZwOpenProcessTokenEx öffnet das einem Prozess zugeordnete Zugriffstoken und gibt ein Handle für dieses Token zurück.

Jedes Handle, das durch Aufrufen von ZwOpenProcessTokenEx abgerufen wird, muss schließlich durch Aufrufen von ZwClosefreigegeben werden.

Treiberroutinen, die in einem anderen Prozesskontext als dem des Systemprozesses ausgeführt werden, müssen das attribut OBJ_KERNEL_HANDLE für den HandleAttributes Parameter von ZwOpenProcessTokenExfestlegen. Dadurch wird die Verwendung des von ZwOpenProcessTokenEx- zurückgegebenen Handles auf Prozesse beschränkt, die im Kernelmodus ausgeführt werden. Andernfalls kann über den Prozess, in dem der Treiber ausgeführt wird, auf das Handle zugegriffen werden kann.

Weitere Informationen zur Sicherheits- und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und die Dokumentation zu diesen Themen im Windows SDK.

Anmerkung

Wenn der Aufruf der ZwOpenProcessTokenEx--Funktion im Benutzermodus auftritt, sollten Sie den Namen "NtOpenProcessTokenEx" anstelle von "ZwOpenProcessTokenEx" verwenden.

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
mindestens unterstützte Client- Windows XP
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Siehe auch

ACCESS_MASK

ACL-

PsDereferencePrimaryToken

Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen

ZwClose

ZwOpenThreadTokenEx