Macro NdisMoveMemory (ndis.h)

La funzione NdisMoveMemory copia un numero specificato di byte da una posizione fornita dal chiamante a un'altra.

Sintassi

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

Parametri

[out] Destination

Puntatore a un buffer dello spazio di sistema che rappresenta la destinazione dello spostamento. Questo buffer deve essere di dimensioni pari almeno a lunghezza .

[in] Source

Puntatore a un buffer dello spazio di sistema da cui questa funzione copia i dati nel buffer di destinazione. Questo buffer deve essere di dimensioni pari almeno a lunghezza .

[in] Length

Il numero di byte da copiare.

Valore restituito

nessuno

Osservazioni

Sia l'origine che la destinazione sono indirizzi virtuali.

Se uno degli indirizzi rientra in un intervallo di memoria del dispositivo di cui è stato eseguito il mapping con NdisMMapIoSpace, un driver miniport deve chiamare uno degli oggetti Ndis. Funzioni MappedMemory anziché NdisMoveMemory.

L'intervallo specificato da Source e Length non può sovrapporsi all'intervallo di destinazione .

I chiamanti di NdisMoveMemory possono essere eseguiti in qualsiasi IRQL se l'origine e la destinazione specificati sono residenti. In caso contrario, i chiamanti devono essere in esecuzione in IRQL < DISPATCH_LEVEL, ad esempio se uno degli indirizzi si trova nello stack.

Requisiti

Requisito Valore
Client minimo supportato Supportato per i driver esistenti in NDIS 6.0 e versioni successive, ma i nuovi driver devono usare invece RtlCopyMemory (non RtlMoveMemory).
Piattaforma di destinazione Desktop
Intestazione ndis.h (include Ndis.h)
IRQL Vedere la sezione Osservazioni

Vedi anche

NdisAllocateMemoryWithTagPriority

NdisMMapIoSpace