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) |