次の方法で共有


KsPinDataIntersectionEx 関数 (ks.h)

KsPinDataIntersectionEx 関数は、コールバック関数を使用してKSPROPERTY_PIN_DATAINTERSECTIONを処理します。

構文

KSDDKAPI NTSTATUS KsPinDataIntersectionEx(
  [in]           PIRP                    Irp,
  [in]           PKSP_PIN                Pin,
  [out]          PVOID                   Data,
  [in]           ULONG                   DescriptorsCount,
  [in]           const KSPIN_DESCRIPTOR  *Descriptor,
  [in]           ULONG                   DescriptorSize,
  [in, optional] PFNKSINTERSECTHANDLEREX IntersectHandler,
  [in, optional] PVOID                   HandlerContext
);

パラメーター

[in] Irp

プロパティ要求を記述する IRP を指定します。

[in] Pin

クエリを実行する特定のプロパティを指定します。

[out] Data

pin プロパティ固有のデータを指定します。

[in] DescriptorsCount

記述子構造体の数を指定します。

[in] Descriptor

ピン情報構造体のリストへのポインターを指定します。

[in] DescriptorSize

記述子構造体のサイズ (バイト単位)。

[in, optional] IntersectHandler

データ範囲を比較するためのオプションのミニドライバー定義 KStrIntersectHandlerEx コールバック関数が含まれます。

[in, optional] HandlerContext

ハンドラーに提供される省略可能なコンテキスト。

戻り値

STATUS_SUCCESSを返します。それ以外の場合は、処理されるプロパティに固有のエラー。

注釈

KsPinDataIntersectionExKsPinDataIntersection とよく似ていますが、次のわずかな違いがいくつかあります。

  • KsPinDataIntersectionEx では、記述子のサイズが渡されます。これは、拡張記述子を許可する機能です。
  • データ交差コールバック関数は、拡張バージョン (NTSTATUS コールバック (コンテキストIrpPinDataRangeMatchingDataRangeDataBufferSizeDataDataSize) と KsPinDataIntersection (NTSTATUS コールバック (IrpPinDataRangeDataSize)) で異なる方法でプロトタイプ化されます。
  • 出力バッファー (データ) の長さは、現在の I/O スタックの場所から抽出されるのではなく、データ交差コールバック関数 (DataBufferSize) にパラメーターとして渡されます。
  • データ交差コールバック関数には、Context パラメーター (KsPinDataIntersectionEx に渡されるのと同じ Context パラメーター) が渡されます。
  • 結果の形式のサイズは、Irp->IoStatus.Information ではなく DataSize で返されます。
これらの違いを除き、 KsPinDataIntersectionKsPinDataIntersectionEx も同様に動作します。

要件

要件
対象プラットフォーム デスクトップ
Header ks.h (Ks.h を含む)

こちらもご覧ください

KStrIntersectHandlerEx