次の方法で共有


ZwOpenEvent 関数 (wdm.h)

ZwOpenEvent ルーチンは、指定した目的のアクセス権を持つ既存の名前付きイベント オブジェクトへのハンドルを開きます。

構文

NTSYSCALLAPI NTSTATUS ZwOpenEvent(
  [out] PHANDLE            EventHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

パラメーター

[out] EventHandle

イベント オブジェクト ハンドルを受け取る変数へのポインター。 ハンドルには、参照カウントやセキュリティ コンテキストなどのブックキーピング情報が含まれます。

[in] DesiredAccess

イベント オブジェクトの目的のアクセスの種類を表す ACCESS_MASK 値。 次の表に、イベント固有のACCESS_MASK値を示します。

価値 必要なアクセス
EVENT_QUERY_STATE イベント オブジェクトの状態を照会します。
EVENT_MODIFY_STATE イベント オブジェクトの状態を変更します。
EVENT_ALL_ACCESS イベント オブジェクトに対して可能なすべてのアクセス権。

[in] ObjectAttributes

指定したオブジェクトに使用するために呼び出し元が指定したオブジェクト属性構造体へのポインター。 これらの属性には、ObjectName やハンドル属性などが含まれます。 このパラメーターは、InitializeObjectAttributes マクロを呼び出すことによって初期化されます。

戻り値

ZwOpenEvent は、STATUS_SUCCESSまたは適切なエラー状態を返します。 このルーチンは、次のいずれかのエラー状態コードを返す場合があります。

リターン コード 形容
STATUS_INSUFFICIENT_RESOURCES この関数に必要なリソースを割り当てませんでした。
STATUS_INVALID_PARAMETER ObjectAttributes 構造体が指定されていないか、無効なパラメーター値が含まれていました。
STATUS_OBJECT_NAME_INVALID ObjectAttributes パラメーターには、無効な OBJECT_ATTRIBUTES 構造体に ObjectName が含まれていました。
STATUS_OBJECT_PATH_SYNTAX_BAD オブジェクト パスに正しくない構文が含まれていました。 たとえば、ObjectAttributes パラメーターには、RootDirectory メンバーが含まれていませんが、OBJECT_ATTRIBUTES 構造体の ObjectName メンバーは空の文字列であるか、OBJECT_NAME_PATH_SEPARATOR文字で始まっていません。
STATUS_OBJECT_PATH_NOT_FOUND オブジェクトへのパスが見つかりませんでした。存在しないことを示します。
STATUS_OBJECT_NAME_NOT_FOUND オブジェクト名が見つかりませんでした。オブジェクトが存在しないことを示します。
STATUS_PRIVILEGE_NOT_HELD 呼び出し元には、DesiredAccess パラメーターで指定されたアクセス権を持つハンドルを作成するために必要な特権がありませんでした。

備考

ZwOpenEvent は、既存の名前付きイベント オブジェクトを開き、指定した目的のアクセス権を持つオブジェクトへのハンドルを作成します。

ZwOpenEvent は、通知イベントまたは同期イベントを開くことができます。

イベントは、実行を調整するために使用されます。 ファイル システム ドライバーは、イベントを使用して、指定されたイベントが Signaled 状態に設定されるまで、呼び出し元が要求された操作の完了を待機できるようにします。

通知イベントを使用して、イベントが発生したことを 1 つ以上の実行スレッドに通知できます。 同期イベントは、他の 2 つの関連のないドライバー間のハードウェアへのアクセスのシリアル化で使用できます。

ZwOpenEvent 関数の呼び出しがユーザー モードで発生する場合は、"ZwOpenEvent" ではなく"NtOpenEvent" という名前を使用する必要があります。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxxZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム の 万国
ヘッダー wdm.h (Wdm.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 を する HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

関連項目

ACCESS_MASK

InitializeObjectAttributes の

IoCreateNotificationEvent の

IoCreateSynchronizationEvent の

KeClearEvent

KeResetEvent の

KeSetEvent

KeWaitForSingleObject を する

ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンを使用した

ZwClose

ZwCreateEvent

ZwSetEvent

ZwWaitForSingleObject