Freigeben über


NdisAdjustMdlLength-Makro (ndis.h)

Die Funktion NdisAdjustMdlLength ändert die Länge der Daten, die einer MDL zugeordnet sind.

Syntax

void NdisAdjustMdlLength(
  [in]  _Mdl,
  [in]  _Length
);

Parameter

[in] _Mdl

Ein Zeiger auf eine Speicherdeskriptorliste (Memory Descriptor List, MDL).

[in] _Length

Die Anzahl von Datenbytes, die die MDL beschreibt.

Rückgabewert

Keine

Bemerkungen

Die NdisAdjustMdlLength-Funktion ändert das ByteCount-Element einer MDL, die durch Aufrufen der NdisAllocateMdl-Funktion zugeordnet wurde.

Der Aufrufer von NdisAdjustMdlLength kann nur einen MDL-Deskriptor übergeben, den der Aufrufer zugewiesen hat. Ein MDL-Deskriptor, den ein anderer Treiber zugewiesen hat, kann nicht übergeben werden.

Beispielsweise ruft der Treiber einer Bus-master DMA-NIC NdisAdjustMdlLength mit MDL-Deskriptoren auf, die er zugewiesen hat, um Empfangs-MDLs im freigegebenen Speicherblock anzugeben. Bevor ein solcher Treiber empfangene Daten angibt, ruft er NdisAdjustMdlLength auf, um den MDL-Deskriptor, den er in die Empfangsanzeige aufnehmen wird, mit der Größe der empfangenen Daten übereinzupassen, wenn er kleiner als die Größe des Empfangspuffers der NIC ist.

Die Länge, die an NdisAdjustMdlLength übergeben wird, darf nicht größer als die Länge sein, die an NdisAllocateMdl übergeben wurde, als der MDL-Deskriptor zugewiesen wurde.

Der Aufrufer von NdisAdjustMdlLength muss die Länge auf den ursprünglichen Wert wiederherstellen, bevor er den MDL-Deskriptor mit NdisFreeMdl freigibt.

Aufrufer von NdisAdjustMdlLength können in jedem IRQL ausgeführt werden, werden jedoch in der Regel mit IRQL <= DISPATCH_LEVEL ausgeführt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Desktop
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL Beliebige Ebene (siehe Abschnitt Hinweise)

Weitere Informationen

NdisAllocateMdl

NdisFreeMdl