次の方法で共有


NdisMFreeNetBufferSGList 関数 (ndis.h)

注意事項

ARM および ARM64 プロセッサの場合、NDIS ドライバー ライターは、NDIS 散布/収集 DMA の代わりに WDF DMA または WDM DMA を使用することを強くお勧めします。

WDF DMA の詳細については、「 KMDF ドライバーでの DMA 操作の処理」を参照してください。

WDM DMA の詳細については、「 ドライバーの入出力の管理」の DMA 関連の子トピックを参照してください。

バス マスター ミニポート ドライバーは、 NdisMFreeNetBufferSGList 関数を呼び出して、 を呼び出して割り当てられた散布/収集リスト リソースを解放します。 NdisMAllocateNetBufferSGList 関数。

構文

void NdisMFreeNetBufferSGList(
  [in] NDIS_HANDLE          NdisMiniportDmaHandle,
  [in] PSCATTER_GATHER_LIST pSGL,
  [in] PNET_BUFFER          NetBuffer
);

パラメーター

[in] NdisMiniportDmaHandle

NDIS が DMA リソースの管理に使用するコンテキスト領域へのハンドル。 呼び出し元は、 を呼び出してこのハンドルを取得しました。 NdisMRegisterScatterGatherDma 関数。

[in] pSGL

ミニポート ドライバーの散布/収集リスト バッファーへのポインター。

[in] NetBuffer

指定した散布/収集リスト バッファーに関連付けられている NET_BUFFER 構造体へのポインター。

戻り値

なし

解説

バス マスター ミニポート ドライバーは、分散/収集リストを解放するために NdisMFreeNetBufferSGList 関数を呼び出す必要があります。 ミニポート ドライバーは通常、送信の完全な割り込みを処理している間、またはドライバーに散布/収集リストが不要になった任意の時点で、そのミニポートInterruptDPC 関数から NdisMFreeNetBufferSGList を呼び出します。 ドライバーまたはハードウェアが、散布/収集リストに関連付けられているNET_BUFFER構造体によって記述されたメモリにアクセスしている間は、NdisMFreeNetBufferSGList を呼び出さないでください。

ミニポート ドライバーは、NdisMFreeNetBufferSGList が返された後、NdisMAllocateNetBufferSGList 関数の ScatterGatherListBuffer パラメーターで指定されたバッファーを解放できます。

受信したデータにアクセスする前に、ミニポート ドライバーは NdisMFreeNetBufferSGList を呼び出してメモリ キャッシュをフラッシュする必要があります。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL DISPATCH_LEVEL
DDI コンプライアンス規則 Irql_Gather_DMA_Function(ndis)

こちらもご覧ください

MiniportInterruptDPC

NDIS Scatter/Gather DMA

NET_BUFFER

NdisMAllocateNetBufferSGList

NdisMRegisterScatterGatherDma