NdisAdvanceNetBufferDataStart 関数 (ndis/nblapi.h)
構文
NDIS_EXPORTED_ROUTINE VOID NdisAdvanceNetBufferDataStart(
[in] NET_BUFFER *NetBuffer,
[in] ULONG DataOffsetDelta,
[in] BOOLEAN FreeMdl,
[in, optional] NET_BUFFER_FREE_MDL *FreeMdlHandler
);
パラメーター
[in] NetBuffer
以前に割り当てられた NET_BUFFER 構造体へのポインター。
[in] DataOffsetDelta
解放 使用されたデータ領域の量。 NDIS は、それに応じて、NET_BUFFER構造体の DataOffset メンバーの値を調整します。
[in] FreeMdl
TRUE 場合は、事前操作で使用されなくなったすべての MDLs を解放する NDIS を要求するブール値。 FreeMdl が FALSE 場合、NDIS は後続の退避操作で使用するために未使用の MDL を保持します。
[in, optional] FreeMdlHandler
NetFreeMdl 関数の省略可能なエントリ ポイント。 呼び出し元が NetFreeMdl 関数のエントリ ポイントを指定した場合、NDIS は NetFreeMdl 呼び出して MDL とメモリを解放します。
戻り値
何一つ
備考
NDIS が対応する呼び出しを満たすためにメモリを割り当てた場合、NdisRetreatNetBufferDataStart 関数、NdisAdvanceNetBufferDataStart 、NdisRetreatNetBufferDataStart 割り当てられたメモリ 解放します。 それ以外の場合、メモリは MDL に残り、NET_BUFFER 構造体のメンバー DataOffset の値のみが変更されます。
NdisAdvanceNetBufferDataStart がメモリ 解放する必要がある場合、NDIS は FreeMdl で指定された NetFreeMdl 関数 呼び出します。 NDIS 呼び出し NetFreeMdl、NetAllocateMdl 関数で割り当てられたドライバーの MDLs とメモリを解放します。
プロトコル ドライバーがさまざまなトランスポート ヘッダーにアクセスするために受信パスで NdisAdvanceNetBufferDataStart を呼び出す場合、MDL チェーンを変更しないでください。FreeMdl は FALSE 。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.0 以降でサポートされています。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ndis/nblapi.h (ndis.h を含む) |
ライブラリ | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 を する | Irql_NetBuffer_Function(ndis) |
関連項目
NdisRetreatNetBufferDataStart のNetAllocateMdl の
NetFreeMdl を する