Freigeben über


NdisMoveMemory-Makro (ndis.h)

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

Syntax

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

Parameter

[out] Destination

Ein Zeiger auf einen Systemraumpuffer, der das Ziel der Verschiebung ist. Dieser Puffer muss mindestens Länge Bytes groß sein.

[in] Source

Ein Zeiger auf einen Systemraumpuffer, aus dem diese Funktion die Daten in den Zielpuffer kopiert. Dieser Puffer muss mindestens Länge Bytes groß sein.

[in] Length

Die Anzahl der zu kopierenden Bytes.

Rückgabewert

Nichts

Bemerkungen

Sowohl Quell- als auch das Ziel sind virtuelle Adressen.

Wenn eine der Adressen in einen Bereich des Gerätespeichers fällt, der mit NdisMMapIoSpace-zugeordnet wurde, sollte ein Miniporttreiber einen der Ndis aufrufen. MappedMemory Funktionen anstelle von NdisMoveMemory.

Der durch Source angegebene Bereich und Length können den bereich Ziel- nicht überlappen.

Anrufer von NdisMoveMemory- können bei jedem IRQL ausgeführt werden, wenn die angegebene Source und Ziel- ansässig sind. Andernfalls müssen Aufrufer bei IRQL-< DISPATCH_LEVEL ausgeführt werden, z. B. wenn sich eine der Adressen im Stapel befindet.

Anforderungen

Anforderung Wert
mindestens unterstützte 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
Header- ndis.h (include Ndis.h)
IRQL- Siehe Abschnitt "Hinweise"

Siehe auch

NdisAllocateMemoryWithTagPriority

NdisMMapIoSpace