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 |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示