Freigeben über


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)

Weitere Informationen

ACCESS_MASK

OBJECT_ATTRIBUTES

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen