Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
The SetUserMemory function fills a user-mode memory region with a specified byte value.
Syntax
VOID SetUserMemory(
volatile VOID *Destination,
UCHAR Fill,
SIZE_T Length
);
Parameters
Destination
[out] Puntero a la dirección inicial del bloque de memoria que se va a rellenar.
Fill
[in] The byte value used to fill the first Length bytes of Destination.
Length
[in] The number of bytes to fill with the Fill value.
Return value
None
Remarks
Esta función proporciona una manera segura de rellenar una región de memoria en modo de usuario con un valor de bytes especificado. Esto permite operaciones de memoria flexibles cuando el código en modo kernel necesita inicializar búferes de memoria en modo de usuario.
La función tiene las siguientes propiedades:
The function performs a volatile fill using memory_order_relaxed semantics.
La función no se reconoce como intrínseca del compilador, por lo que el compilador nunca optimizará la llamada (por completo o reemplazará la llamada por una secuencia equivalente de instrucciones).
When the call returns, the buffer has been overwritten with the specified Fill value. 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 función puede realizar accesos a memoria no asignadas si la plataforma lo permite.
La función puede tener acceso a ubicaciones de memoria más de una vez como parte de su operación de relleno.
La función genera una excepción estructurada si se produce un error en la operación de relleno, como cuando la dirección de destino no es una dirección válida en modo de usuario o no es accesible.
El compilador nunca optimizará esta función ni creará accesos adicionales a esta ubicación de memoria antes de llamar a la función o después de que se devuelva la función (a menos que el código fuente realice explícitamente estos accesos).
Esta función funciona en todas las versiones de Windows, no solo en la más reciente. 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. Sin embargo, el controlador resultante se ejecutará correctamente en versiones anteriores de Windows.
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo compatible | See Remarks |
| Header | usermode_accessors.h |
| Library | umaccess.lib |
| IRQL | Menor o igual que APC_LEVEL |