次の方法で共有


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

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

MinData

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

SupportHandler

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

Flags

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

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

備考

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

必要条件

要件 価値
ヘッダー ks.h (Ks.h を含む)

関連項目

KSFASTMETHOD_ITEM

KSMETHOD

KStrSupportHandler