KsDisableEvent 関数 (ks.h)
KsDisableEvent 関数は、IOCTL_KS_DISABLE_EVENTを介して要求されたイベントを無効にします。 KsEnableEvent によって以前に有効にされたすべてのイベントに応答します。 入力バッファーの長さが 0 の場合は、リスト上のすべてのイベントが無効であると見なされます。 この関数は、PASSIVE_LEVELでのみ呼び出すことができます。
構文
KSDDKAPI NTSTATUS KsDisableEvent(
[in] PIRP Irp,
[in, out] PLIST_ENTRY EventsList,
[in] KSEVENTS_LOCKTYPE EventsFlags,
[in] PVOID EventsLock
);
パラメーター
[in] Irp
IRP を使用してコンテキスト情報を取得する削除関数に渡される IRP を指定します。 IRP に関連付けられているファイル オブジェクトは、イベントを有効にするときに最初に指定されたファイル オブジェクトと比較するために使用されます。 これにより、ファイル オブジェクトによって区別される複数のクライアントに対して 1 つのイベント リストを使用できます。
[in, out] EventsList
イベントが見つかる 可能性があるKSEVENT_ENTRY 項目のリストの先頭を指します。 クライアントが複数のイベント リストを使用していて、このイベントが発生しているリストがわからない場合、クライアントはこの関数を複数回呼び出すことができます。 イベントが見つからないと、STATUS_UNSUCCESSFULが返されます。
[in] EventsFlags
イベント リストへの アクセスに使用 する除外ロックの種類を指定するKSEVENTS_LOCKTYPE フラグを指定します。 フラグが設定されていない場合、ロックは行われません。
[in] EventsLock
リスト上の要素へのアクセスを同期するために使用されます。 要素にアクセスすると、後続の削除要求が失敗するように削除済みとしてマークされます。 ロックは、削除関数 (存在する場合) を呼び出した後に解放されます。 削除関数は、リストから要素を実際に削除する前に、イベント生成と同期する必要があります。
戻り値
KsDisableEvent 関数は、成功した場合はSTATUS_SUCCESS、または有効になっているイベントに固有のエラーを返します。 関数は常にIO_STATUS_BLOCKを設定します。PIRP の情報フィールド。IRP 内の IoStatus 要素を 0 にします。 IO_STATUS_BLOCKは設定されません。状態フィールドは、IRP を完了しません。
注釈
削除ハンドラーがイベント生成と同期して、イベントがリストから削除されたときに、現在サービスが提供されていないことを確認することが重要です。 このリストへのアクセスは、渡されたロックで制御されるものと見なされます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ks.h (Ks.h を含む) |
Library | Ks.lib |