Share via


FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE関数 (ndis.h)

NDIS は、基になるドライバーから同期 OID 要求が完了した後、フィルター ドライバーの FilterSynchronousOidRequestComplete 関数を呼び出します。

この関数は、NDIS 6.81 以降でサポートされています。

構文

void FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE(
  [in]      NDIS_HANDLE      FilterModuleContext,
  [in, out] NDIS_OID_REQUEST *OidRequest,
  [in, out] NDIS_STATUS      *Status,
  [in]      PVOID            CallContext
);

パラメーター

[in] FilterModuleContext

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

[in, out] OidRequest

完了する操作を指定する NDIS_OID_REQUEST 構造体へのポインター。

[in, out] Status

完了している要求の結果の状態コードへのポインター。

[in] CallContext

フィルター ドライバーが FilterSynchronousOidRequest ハンドラーと FilterSynchronousOidRequestComplete ハンドラーの間で状態を共有するための PVOID サイズのストレージ スロット。 フィルター ドライバーが FilterSynchronousOidRequest ハンドラーを実装する場合、このパラメーターには 、FilterSynchronousOidRequest ハンドラーが返したコンテキスト値が含まれます。 それ以外の場合、フィルター ドライバーが FilterSynchronousOidRequest ハンドラーを実装していない場合、この値は 0 になります。

戻り値

なし

解説

FilterSynchronousOidRequestComplete は省略可能な関数です。 フィルター ドライバーがミニポート ドライバーから完了した同期 OID 要求を監視または変更する必要がない場合、フィルター ドライバーは NdisFRegisterFilterDriver を呼び出すときに、この関数のエントリ ポイントを NULL に設定する必要があります。

NDIS は、フィルター ドライバーの FilterSynchronousOidRequestComplete 関数を呼び出して、基になるドライバーによって完了した同期 OID 要求を処理します。 フィルター ドライバーは、 NDIS_OID_REQUEST 構造の一部のフィールドを次のように読み取ったり変更したりできます。

フィールド アクセスのフィルター処理
ヘッダー 読み取り専用
RequestType 読み取り/書き込み
PortNumber 読み取り/書き込み
タイムアウト アクセスしない
RequestId アクセスしない
RequestHandle 読み取り/書き込み
DATA 読み取り/書き込み
NdisReserved アクセスしない
ミニポート予約済み アクセスしない
ソース予約済み アクセスしない
SupportedRevision 読み取り/書き込み
予約済み 1、予約済み 2 アクセスしない
SwitchId 読み取り/書き込み
VPortId 読み取り/書き込み
Flags 読み取り/書き込み

フィルター ドライバーは 、NDIS_OID_REQUEST 構造の変更に加えて、操作が完了した状態コードを読み取ったり変更したりできます。 フィルター ドライバーは、 *Status パラメーターに新しい値を書き込むことができます。 フィルター ドライバーは、 *Status パラメーターにNDIS_STATUS_PENDINGまたはNDIS_STATUS_ALREADY_COMPLETEを書き込む必要があります。

フィルター ドライバーも FilterSynchronousOidRequest ハンドラーを登録する場合、NDIS は 、FilterSynchronousOidRequest ハンドラー がNDIS_STATUS_SUCCESSを返す場合にのみ 、FilterSynchronousOidRequestComplete ハンドラーが呼び出されることを保証します。

フィルター ドライバーは、ブロック、待機、またはスリープ状態にすることなく、 FilterSynchronousOidRequestComplete ハンドラーからすばやく戻ることが期待されます。 同期 OID 要求は待機時間の短い操作にのみ使用され、フィルター ドライバーは数ミリ秒以内に続行または完了するように努める必要があります。

NDIS は、互いに、他の OID 要求に対して、または FilterPause に対して同期 OID 要求をシリアル化しません。 フィルター ドライバーは、必要な同期を実装する必要があります。

NDIS は FilterDetach に対して同期 OID 要求をシリアル化します。NDIS では、 FilterDetach が呼び出されると、同期 OID 要求がアクティブになることは保証されません。

フィルター ドライバーは、同期 OID 要求 で NdisAllocateCloneOidRequest または NdisCancelOidRequest を呼び出してはなりません。 フィルター ドライバーは、 FilterSynchronousOidRequestComplete ハンドラーを介して受信した OID 要求で NdisFSynchronousOidRequest を呼び出してはなりません。

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 1709
対象プラットフォーム Windows
ヘッダー ndis.h (Ndis.h を含む)
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

FilterSynchronousOidRequest

NdisFSynchronousOidRequest

NDIS 6.80 の同期 OID 要求インターフェイス