Condividi tramite


Funzione ZeroUserMemory (usermode_accessors.h)

The ZeroUserMemory function fills a user-mode memory region with zeros.

Syntax

VOID ZeroUserMemory(
  volatile VOID *Destination,
  SIZE_T        Length
);

Parameters

Destination

[out] Puntatore all'indirizzo iniziale del blocco di memoria su zero.

Length

[in] Numero di byte da zero.

Return value

None

Remarks

Questa funzione offre un modo sicuro per zero un'area di memoria in modalità utente. Ciò consente operazioni di memoria flessibili quando il codice in modalità kernel deve inizializzare i buffer di memoria in modalità utente su zero.

La funzione ha le proprietà seguenti:

  • The function performs a volatile zero operation using memory_order_relaxed semantics.

  • La funzione non viene riconosciuta come un compilatore intrinseco, quindi il compilatore non ottimizza mai la chiamata (completamente o sostituisce la chiamata con una sequenza equivalente di istruzioni).

  • Al termine della chiamata, il buffer è stato sovrascritto con zeri. This function's memory accesses to the Destination will only be performed within the function (for example, the compiler can't move memory accesses out of this function).

  • La funzione potrebbe eseguire accessi in memoria non idonei se la piattaforma lo consente.

  • La funzione potrebbe accedere ai percorsi di memoria più di una volta come parte dell'operazione zero.

La funzione genera un'eccezione strutturata se l'operazione zero non riesce, ad esempio quando l'indirizzo di destinazione non è un indirizzo in modalità utente valido o non è accessibile.

Questa funzione non verrà mai ottimizzata dal compilatore, né il compilatore creerà accessi aggiuntivi a questo percorso di memoria prima che la funzione venga chiamata o dopo la restituzione della funzione (a meno che il codice sorgente non esegua in modo esplicito questi accessi).

Questa funzione funziona su tutte le versioni di Windows, non solo sulla versione più recente. You need to consume the latest WDK to get the function declaration from the usermode_accessors.h header. You also need the library (umaccess.lib) from the latest WDK. Tuttavia, il driver risultante verrà eseguito correttamente nelle versioni precedenti di Windows.

Requirements

Requirement Value
Client minimo supportato See Remarks
Header usermode_accessors.h
Library umaccess.lib
IRQL Minore o uguale a APC_LEVEL

See also

ZeroModeMemory

SetUserMemory

FillUserMemory

CopyToUser