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

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

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

構文

FILTER_OID_REQUEST_COMPLETE FilterOidRequestComplete;

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

パラメーター

[in] FilterModuleContext

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

[in] OidRequest

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

[in] Status

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

戻り値

なし

解説

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

NdisFOidRequest 関数がNDIS_STATUS_PENDINGを返す場合、NDIS は OID 要求を完了するために FilterOidRequestComplete 関数を呼び出す必要があります。

フィルター ドライバーが FilterOidRequest 関数で受信した要求を転送した場合、 FilterOidRequestCompleteNdisFOidRequestComplete 関数を呼び出して、完了状態をドライバー スタックに渡す必要があります。 フィルター ドライバーは NdisFOidRequestComplete を呼び出す前に、NDIS_OID_REQUEST構造体を解放するために NdisFreeCloneOidRequest を呼び出す必要があります。

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

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

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

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

FILTER_OID_REQUEST_COMPLETE MyOidRequestComplete;

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

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

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

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

要件

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

こちらもご覧ください

FilterAttach

FilterOidRequest

NDIS_OID_REQUEST

NdisFOidRequest

NdisFOidRequestComplete

NdisFreeCloneOidRequest