FILTER_DIRECT_OID_REQUEST_COMPLETE コールバック関数 (ndis.h)

NDIS は FilterDirectOidRequestComplete 関数を呼び出して、基になるドライバーの情報を照会または設定するフィルター ドライバーダイレクト OID 要求を完了します。

メモFILTER_DIRECT_OID_REQUEST_COMPLETE型を使用して関数を宣言する必要があります。 詳細については、次の例に関するセクションを参照してください。
 

構文

FILTER_DIRECT_OID_REQUEST_COMPLETE FilterDirectOidRequestComplete;

void FilterDirectOidRequestComplete(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNDIS_OID_REQUEST OidRequest,
  [in] NDIS_STATUS Status
)
{...}

パラメーター

[in] FilterModuleContext

フィルター モジュールのコンテキスト領域へのハンドル。 FilterAttach 関数でこのコンテキスト領域を作成および初期化したフィルター ドライバー。

[in] OidRequest

フィルター ドライバーが以前に に渡した NDIS_OID_REQUEST 構造体へのポインター NdisFDirectOidRequest 関数。

[in] Status

基になるドライバーまたは NDIS が設定した要求の最終的な状態。 このパラメーターは、OidRequest の情報を使用して FilterDirectOidRequestComplete が何を行うかを決定します。 使用可能な状態値の一覧については、 NdisFDirectOidRequest の戻り値を参照してください。

戻り値

なし

解説

FilterDirectOidRequestComplete は省略可能な関数です。 フィルター ドライバーが直接 OID 要求を使用しない場合は、 を呼び出すときに、この関数のエントリ ポイントを NULL に設定できます。 NdisFRegisterFilterDriver 関数。 フィルター ドライバーで FilterDirectOidRequest 関数を定義する場合は、 FilterDirectOidRequestComplete 関数を提供する必要があります。

NdisFDirectOidRequest 関数がNDIS_STATUS_PENDINGを返す場合、NDIS は FILTERDirectOidRequestComplete 関数を呼び出して OID 要求を完了する必要があります。

フィルター ドライバーが FilterDirectOidRequest 関数で受信した要求を転送した場合、
FilterDirectOidRequestComplete は、 を呼び出してドライバー スタックの完了状態を渡す必要があります。
NdisFDirectOidRequestComplete 関数。 この場合、フィルター ドライバーは NdisFreeCloneOidRequest を呼び出して、 NDIS_OID_REQUEST 構造体を解放してから呼び出す必要があります
NdisFDirectOidRequestComplete

フィルター ドライバーは、発生した要求を追跡し、このような要求に対して NDIS が FilterDirectOidRequestComplete を呼び出すときに NdisFDirectOidRequestComplete を呼び出さないことを確認する必要があります。

NDIS は、IRQL <= DISPATCH_LEVELで FilterDirectOidRequestComplete を呼び出します。

FilterDirectOidRequestComplete 関数を定義するには、まず、定義する関数の種類を識別する関数宣言を指定する必要があります。 Windows には、ドライバー用の一連の関数型が用意されています。 関数の種類を使用して関数を宣言すると、ドライバー、静的ドライバー検証ツール (SDV)、およびその他の検証ツールのコード分析でエラーが検出され、Windows オペレーティング システムのドライバーを記述するための要件になります。

たとえば、" MyDirectOidRequestComplete" という名前の FilterDirectOidRequestComplete 関数を定義するには、次のコード例に示すように 、FILTER_DIRECT_OID_REQUEST_COMPLETE 型を使用します。

FILTER_DIRECT_OID_REQUEST_COMPLETE MyDirectOidRequestComplete;

次に、次のように関数を実装します。

_Use_decl_annotations_
VOID
 MyDirectOidRequestComplete(
    NDIS_HANDLE  FilterModuleContext,
    PNDIS_OID_REQUEST  OidRequest,
    NDIS_STATUS Status
    )
  {...}

FILTER_DIRECT_OID_REQUEST_COMPLETE関数の種類は、Ndis.h ヘッダー ファイルで定義されています。 コード分析ツールの実行時にエラーをより正確に識別するには、 Use_decl_annotations 注釈を関数定義に追加してください。 Use_decl_annotations注釈を使用すると、ヘッダー ファイル内のFILTER_DIRECT_OID_REQUEST_COMPLETE関数型に適用される注釈が確実に使用されます。 関数宣言の要件の詳細については、「NDIS ドライバーの関数 ロール型を使用して関数を宣言する」を参照してください。

Use_decl_annotationsの詳細については、「関数の動作に注釈を付ける」を参照してください。

要件

要件
サポートされている最小のクライアント NDIS 6.1 以降でサポートされています。
対象プラットフォーム Windows
ヘッダー ndis.h (Ndis.h を含む)
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

FilterAttach

FilterDirectOidRequest

NDIS_OID_REQUEST

NdisFDirectOidRequest

NdisFDirectOidRequestComplete

NdisFRegisterFilterDriver

NdisFreeCloneOidRequest