ZwOpenProcess-Funktion (ntddk.h)
Die ZwOpenProcess-Routine öffnet ein Handle für ein Prozessobjekt und legt die Zugriffsrechte für dieses Objekt fest.
Syntax
NTSYSAPI NTSTATUS ZwOpenProcess(
[out] PHANDLE ProcessHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PCLIENT_ID ClientId
);
Parameter
[out] ProcessHandle
Ein Zeiger auf eine Variable vom Typ HANDLE. Die ZwOpenProcess-Routine schreibt das Prozesshandle in die Variable, auf die dieser Parameter verweist.
[in] DesiredAccess
Ein ACCESS_MASK Wert, der die Zugriffsrechte enthält, die der Aufrufer für das Prozessobjekt angefordert hat.
[in] ObjectAttributes
Ein Zeiger auf eine OBJECT_ATTRIBUTES-Struktur , die die Attribute angibt, die auf das Prozessobjekthandle angewendet werden sollen. Das ObjectName-Feld dieser Struktur muss auf NULL festgelegt werden. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
[in, optional] ClientId
Ein Zeiger auf eine Client-ID, die den Thread identifiziert, dessen Prozess geöffnet werden soll. Dieser Parameter muss ein Nicht-NULL-Zeiger auf eine gültige Client-ID sein. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
ZwOpenProcess gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Mögliche Rückgabewerte sind der folgende Fehler status Codes.
Rückgabecode | Beschreibung |
---|---|
STATUS_INVALID_PARAMETER_MIX | Der Aufrufer hat entweder einen Objektnamen angegeben oder eine Client-ID nicht angegeben. |
STATUS_INVALID_CID | Die angegebene Client-ID ist ungültig. |
STATUS_INVALID_PARAMETER | Die angeforderten Zugriffsrechte sind für ein Prozessobjekt ungültig. |
STATUS_ACCESS_DENIED | Die angeforderten Zugriffsrechte können nicht erteilt werden. |
Hinweise
Der ClientId-Parameter muss auf eine Client-ID verweisen, die den Thread identifiziert, dessen Prozess geöffnet werden soll. Darüber hinaus muss das ObjectName-Feld der Struktur, auf die von ObjectAttributes verwiesen wird, auf NULL festgelegt werden.
Wenn der Aufruf dieser Funktion im Benutzermodus erfolgt, sollten Sie den Namen "NtOpenProcess" anstelle von "ZwOpenProcess" verwenden.
Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienstroutinen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ntddk.h (include Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |