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 バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx と ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の |
万国 |
ヘッダー | wdm.h (Wdm.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
関連項目
InitializeObjectAttributes の
IoCreateNotificationEvent の
IoCreateSynchronizationEvent の
KeResetEvent の
KeWaitForSingleObject を