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 ZwOpenProcess Routine öffnet ein Handle für ein Prozessobjekt und legt die Zugriffsrechte auf dieses Objekt fest.
Syntax
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenProcess(
[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 Anmerkungen.
[in, optional] ClientId
Ein Zeiger auf eine Client-ID, die den Thread identifiziert, dessen Prozess geöffnet werden soll. Dieser Parameter muss ein nichtNULL- Zeiger auf eine gültige Client-ID sein. Weitere Informationen finden Sie im folgenden abschnitt Anmerkungen.
Rückgabewert
ZwOpenProcess gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Mögliche Rückgabewerte sind die folgenden Fehlerstatuscodes:
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. |
Bemerkungen
Wie bei Kernelhandles, die von anderen Systemdienstaufrufen wie ZwCreateKey und ZwCreateFile-geöffnet werden, ist der Aufrufer dafür verantwortlich, ZwClose aufzurufen, um das Handle zu schließen, wenn es nicht mehr erforderlich ist.
Der parameter ClientId 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 das durch ObjectAttributes verweist, 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 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 |
---|---|
Zielplattform- | Universal |
Header- | ntddk.h (enthalten Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs, PowerIrpDDis |
Siehe auch
Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen