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 を含む) |