EVT_NET_ADAPTER_RETURN_RX_BUFFER コールバック関数 (netadapter.h)
この省略可能なコールバック関数を実装して、以前に手動フラグメント割り当てと添付ファイルを指定した NET_FRAGMENT 受信バッファーでクリーンアップを実行します。
構文
EVT_NET_ADAPTER_RETURN_RX_BUFFER EvtNetAdapterReturnRxBuffer;
void EvtNetAdapterReturnRxBuffer(
[_In_] NETADAPTER Adapter,
[_In_] NET_FRAGMENT_RETURN_CONTEXT_HANDLE RxReturnContext
)
{...}
パラメーター
[_In_] Adapter
NetAdapterCreate の以前の呼び出しでクライアントが作成したネットワーク アダプター オブジェクト。
[_In_] RxReturnContext
ドライバーによって割り当てられたコンテキスト空間構造体へのポインター。
戻り値
なし
解説
構造体の適切な NET_ADAPTER_RX_CAPABILITIES メンバーを設定し、 NetAdapterSetDatapathCapabilities を呼び出して、このコールバック関数の実装を登録します。 クライアント ドライバーは通常、 NetAdapterStart を呼び出す前に、Net アダプターの起動時に NetAdapterSetDatapathCapabilities を呼び出します。
このコールバック関数は、net アダプター クライアント ドライバーが NET_ADAPTER_RX_CAPABILITIES_INIT_DRIVER_MANAGED 関数を使用してそのNET_ADAPTER_RX_CAPABILITIES構造体を初期化しない限り、省略可能です。 この初期化関数を使用すると、ドライバーはオペレーティング システムに対して、 NET_FRAGMENT受信バッファー の割り当てと添付ファイルを手動で管理していることを伝えます。そのため、この場合、オペレーティング システムがバッファーを使用してシステムが終了した後に呼び出すには、このコールバック関数を提供する必要があります。
例
このコールバック関数では、オペレーティング システムがこの受信バッファーで終了したので、クライアント ドライバーは必要なクリーンアップまたはフォローアップアクションを実行できます。 次の例では、戻りコンテキストには、指定されたパケットの数を追跡するメンバーと、受信処理中にルックアサイド バッファーに使用されるメモリ オブジェクトが含まれています。 わかりやすくするために、エラー処理は省略されています。
VOID
MyReturnRxBuffer(
_In_ NETADAPTER Adapter,
_In_ NET_FRAGMENT_RETURN_CONTEXT_HANDLE RxReturnContext
)
{
UNREFERENCED_PARAMETER(Adapter);
RxReturnContext->IndicatedPackets--;
// Clean up the lookaside buffer if this is the last packet
if(RxReturnContext->IndicatedPackets == 0)
{
WdfObjectDelete(RxReturnContext->LookasideBufferMemory);
}
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.25 |
最小 UMDF バージョン | 2.33 |
Header | netadapter.h (netadaptercx.h を含む) |
IRQL | <= DISPATCH_LEVEL |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示