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

こちらもご覧ください

KsEnableEvent