Freigeben über


NdisMoveMemory-Makro (ndis.h)

Die NdisMoveMemory-Funktion kopiert eine angegebene Anzahl von Bytes von einem vom Aufrufer bereitgestellten Speicherort an einen anderen.

Syntax

void NdisMoveMemory(
  [out]  Destination,
  [in]   Source,
  [in]   Length
);

Parameter

[out] Destination

Ein Zeiger auf einen Systemspeicherpuffer, der das Ziel der Verschiebung ist. Dieser Puffer muss mindestens längenbytes groß sein.

[in] Source

Ein Zeiger auf einen Systemspeicherpuffer, aus dem diese Funktion die Daten in den Zielpuffer kopiert. Dieser Puffer muss mindestens längenbytes groß sein.

[in] Length

Die Anzahl der zu kopierenden Bytes.

Rückgabewert

Keine

Bemerkungen

Quelle und Ziel sind virtuelle Adressen.

Wenn eine Adresse innerhalb eines Gerätespeicherbereichs liegt, der mit NdisMMapIoSpace zugeordnet wurde, sollte ein Miniporttreiber eine der Ndis. aufrufen. MappedMemory-Funktionen anstelle von NdisMoveMemory.

Der durch Quelle und Länge angegebene Bereich kann den Zielbereich nicht überlappen.

Aufrufer von NdisMoveMemory können bei jedem IRQL ausgeführt werden, wenn die angegebene Quelle und das angegebene Ziel resident sind. Andernfalls müssen Aufrufer im IRQL-DISPATCH_LEVEL < ausgeführt werden, z. B. wenn sich eine Adresse im Stapel befindet.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für vorhandene Treiber in NDIS 6.0 und höher, aber neue Treiber sollten stattdessen RtlCopyMemory (nicht RtlMoveMemory) verwenden.
Zielplattform Desktop
Kopfzeile ndis.h (include Ndis.h)
IRQL Siehe Abschnitt "Hinweise"

Weitere Informationen

NdisAllocateMemoryWithTagPriority

NdisMMapIoSpace