NdisAdjustMdlLength マクロ (ndis.h)
NdisAdjustMdlLength 関数は、MDL に関連付けられているデータの長さを変更します。
構文
void NdisAdjustMdlLength(
[in] _Mdl,
[in] _Length
);
パラメーター
[in] _Mdl
メモリ記述子リスト (MDL) へのポインター。
[in] _Length
MDL が記述するデータのバイト数。
戻り値
なし
解説
NdisAdjustMdlLength 関数は、NdisAllocateMdl 関数を呼び出すことによって割り当てられた MDL の ByteCount メンバーを変更します。
NdisAdjustMdlLength の呼び出し元は、呼び出し元が割り当てた MDL 記述子のみを渡すことができます。 別のドライバーが割り当てた MDL 記述子を渡すことはできません。
たとえば、バス マスター DMA NIC のドライバーは、共有メモリ ブロック内の受信 MDL を指定するために割り当てられた MDL 記述子を使用して NdisAdjustMdlLength を呼び出します。 このようなドライバーは、受信データを示す前に、 NdisAdjustMdlLength を呼び出して、受信通知に含める MDL 記述子が、NIC の受信バッファーのサイズよりも小さい場合は、受信データのサイズと一致させます。
NdisAdjustMdlLength に渡される長さは、MDL 記述子が割り当てられたときに NdisAllocateMdl に渡された長さより大きくすることはできません。
NdisAdjustMdlLength の呼び出し元は、NdisFreeMdl を使用して MDL 記述子を解放する前に、長さを元の値に復元する必要があります。
NdisAdjustMdlLength の呼び出し元は任意の IRQL で実行できますが、通常は IRQL <= DISPATCH_LEVELで実行されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | ndis.h (Ndis.h を含む) |
IRQL | 任意のレベル (「解説」セクションを参照) |