次の方法で共有


KSMETHOD_ITEM 構造体 (ks.h)

KSMETHOD_ITEM構造体は、メソッド セット内の 1 つのメソッドを記述します。

構文

typedef struct {
  ULONG        MethodId;
  union {
    PFNKSHANDLER MethodHandler;
    BOOLEAN      MethodSupported;
  };
  ULONG        MinMethod;
  ULONG        MinData;
  PFNKSHANDLER SupportHandler;
  ULONG        Flags;
} KSMETHOD_ITEM, *PKSMETHOD_ITEM;

メンバー

MethodId

メソッド セット内のこのメソッドの識別子を指定します。

MethodHandler

ミニドライバーが提供する KStrMethodHandler コールバック ルーチンへのポインター。

MethodSupported

このメソッドがサポートされているかどうかを指定します。

MinMethod

メソッドを完全に指定するために必要なバッファーの最小サイズを指定します。 このサイズは、少なくとも sizeof(KSMETHOD) バイトです。

MinData

メソッド データ バッファーを指定するために必要な最小サイズ バッファーを指定します。 このバッファーは、 メソッドに関連する情報の読み取りや書き込みに使用されます。

SupportHandler

ミニドライバーが提供する KStrSupportHandler コールバック ルーチンへのポインター。

Flags

このメソッド要求の要求の種類を指定します。

メソッド要求の種類
KSMETHOD_TYPE_NONE ハンドラーの データ バッファーが使用されないことを示します。 バッファー処理されたメソッドの場合、領域は割り当てられますが、システム バッファー間でデータはコピーされません。 ソース モード (KSMETHOD_TYPE_SOURCE) の場合、MDL は作成されません。
KSMETHOD_TYPE_READ パラメーターがハンドラーの データ バッファーから読み取られると予想されることを示します。 バッファーに入れると、データがシステム バッファーにコピーされます。 ソース モードの場合、データはプローブされ、 IoReadAccess に対してロックされます。
KSMETHOD_TYPE_WRITE パラメーターがハンドラーの データ バッファーに書き込まれると予想されることを示します。 バッファーに格納されると、システム バッファーからデータがコピーされます。 ソース モードの場合、データはプローブされ、 IoWriteAccess に対してロックされます。
KSMETHOD_TYPE_MODIFY パラメーターが読み取られ、ハンドラーの データ バッファーに書き込まれることを示します。 渡されたデータは、返されたデータによって上書きされます。 これは、渡された構造体が単に更新されることを意味する可能性があります。 バッファーに入れると、データがシステム バッファーにコピーされ、IRP が完了したときにコピーされます。 ソース モードの場合、データはプローブされ、 IoModifyAccess に対してロックされます。
KSMETHOD_TYPE_SOURCE メソッドをソース モードで処理することを示します。 MDL が割り当てられ、データがプローブされてロックされます。 バッファーされたメソッドを示すには、この一覧の他のフラグを使用してこのフラグを指定します。

注釈

ミニドライバーは、KSMETHOD_ITEM構造体を使用して、メソッド セット内のメソッドを定義します。 ミニドライバーはメソッドを実装し、 MethodHandler メンバーを使用してこれらのメソッドをポイントします。 クライアントは、IOCTL_KS_METHOD要求と KSMETHOD 構造体を使用して、ミニドライバーが処理するカーネル ストリーミング オブジェクトに対してメソッドを実行できます。 詳細については、「 KS メソッド」を参照してください。

要件

要件
Header ks.h (Ks.h を含む)

こちらもご覧ください

KSFASTMETHOD_ITEM

KSMETHOD

KStrSupportHandler