ZwOpenEvent-Funktion (wdm.h)
Die ZwOpenEvent-Routine öffnet ein Handle für ein vorhandenes benanntes Ereignisobjekt mit dem angegebenen gewünschten Zugriff.
Syntax
NTSYSCALLAPI NTSTATUS ZwOpenEvent(
[out] PHANDLE EventHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
Parameter
[out] EventHandle
Ein Zeiger auf eine Variable, die das Ereignisobjekthandle empfängt. Das Handle enthält Buchhaltungsinformationen, z. B. eine Verweisanzahl und einen Sicherheitskontext.
[in] DesiredAccess
Der ACCESS_MASK Wert, der die gewünschten Zugriffstypen für das Ereignisobjekt darstellt. Die folgende Tabelle enthält die ereignisspezifischen ACCESS_MASK-Werte.
Wert | Gewünschter Zugriff |
---|---|
EVENT_QUERY_STATE | Fragen Sie den Zustand des Ereignisobjekts ab. |
EVENT_MODIFY_STATE | Ändern Sie den Zustand des Ereignisobjekts. |
EVENT_ALL_ACCESS | Alle möglichen Zugriffsrechte für das Ereignisobjekt. |
[in] ObjectAttributes
Ein Zeiger auf die Objektattributestruktur, die der Aufrufer für das angegebene Objekt angegeben hat. Zu diesen Attributen gehören z. B. die Attribute ObjectName und handle. Dieser Parameter wird initialisiert, indem das Makro InitializeObjectAttributes aufgerufen wird.
Rückgabewert
ZwOpenEvent gibt STATUS_SUCCESS oder einen entsprechenden Fehler status zurück. Diese Routine gibt möglicherweise einen der folgenden Fehler status Codes zurück:
Rückgabecode | Beschreibung |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Ressourcen, die für diese Funktion erforderlich sind, konnten nicht zugeordnet werden. |
STATUS_INVALID_PARAMETER | Die ObjectAttributes-Struktur wurde nicht angegeben oder enthielt keinen ungültigen Parameterwert. |
STATUS_OBJECT_NAME_INVALID | Der ObjectAttributes-Parameter enthielt einen ObjectName in der OBJECT_ATTRIBUTES-Struktur , die ungültig war. |
STATUS_OBJECT_PATH_SYNTAX_BAD | Der Objektpfad enthielt eine falsche Syntax. Beispielsweise enthält der ObjectAttributes-Parameter kein RootDirectory-Element , aber das ObjectName-Element in der OBJECT_ATTRIBUTES-Struktur ist eine leere Zeichenfolge oder beginnt nicht mit einem OBJECT_NAME_PATH_SEPARATOR Zeichen. |
STATUS_OBJECT_PATH_NOT_FOUND | Der Pfad zum Objekt wurde nicht gefunden, was angibt, dass es nicht vorhanden ist. |
STATUS_OBJECT_NAME_NOT_FOUND | Der Objektname wurde nicht gefunden, was angibt, dass das Objekt nicht vorhanden ist. |
STATUS_PRIVILEGE_NOT_HELD | Der Aufrufer verfügte nicht über die erforderliche Berechtigung zum Erstellen eines Handles mit dem im DesiredAccess-Parameter angegebenen Zugriff. |
Hinweise
ZwOpenEvent öffnet ein vorhandenes benanntes Ereignisobjekt und erstellt ein Handle für das Objekt mit dem angegebenen gewünschten Zugriff.
ZwOpenEvent kann Benachrichtigungs- oder Synchronisierungsereignisse öffnen.
Ereignisse werden verwendet, um die Ausführung zu koordinieren. Dateisystemtreiber können Ereignisse verwenden, damit ein Aufrufer auf den Abschluss des angeforderten Vorgangs warten kann, bis das angegebene Ereignis auf den Signalzustand festgelegt ist.
Benachrichtigungsereignisse können verwendet werden, um einen oder mehrere Threads über die Ausführung zu benachrichtigen, dass ein Ereignis aufgetreten ist. Synchronisierungsereignisse können bei der Serialisierung des Hardwarezugriffs zwischen zwei ansonsten unabhängigen Treibern verwendet werden.
Wenn der Aufruf der ZwOpenEvent-Funktion im Benutzermodus erfolgt, sollten Sie den Namen "NtOpenEvent" anstelle von "ZwOpenEvent" verwenden.
Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, da 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 Systemdienstroutinen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | wdm.h (einschließen von Wdm.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |