Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A macro WriteStructToUser grava com segurança uma estrutura na memória do modo de usuário.
Syntax
void WriteStructToUser(
Destination,
Source
);
Parameters
Destination
[out] Um ponteiro para o local de memória do modo de usuário em que a estrutura será gravada.
Source
[in] Um ponteiro para a estrutura a ser gravada no local de memória de destino.
Return value
None
Remarks
Essa macro fornece uma maneira segura de gravar uma estrutura na memória do modo de usuário. Ele garante que o endereço fornecido seja um endereço no modo de usuário antes de gravar nele.
A macro valida que a origeme o destino apontam para tipos compatíveis e determina automaticamente o tamanho da estrutura para a operação de cópia.
Essa macro não impõe alinhamento.
Ele gerará uma exceção estruturada se o acesso à memória falhar, como quando o endereço de destino não for um endereço no modo de usuário ou estiver inacessível.
Essa macro nunca será otimizada pelo compilador, nem o compilador criará acessos adicionais a esse local de memória antes que a macro seja chamada ou depois que a macro retornar (a menos que o código-fonte execute explicitamente esses acessos). O acesso à memória é executado com memory_order_relaxed semântica.
Essa macro funciona em todas as versões do Windows, não apenas nas mais recentes. Você precisa consumir o WDK mais recente para obter a declaração de macro do cabeçalho usermode_accessors.h . Você também precisa da biblioteca (umaccess.lib) do WDK mais recente. No entanto, o driver resultante será executado bem em versões mais antigas do Windows.
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | See Remarks |
| Header | usermode_accessors.h |
| Library | umaccess.lib |
| IRQL | Menor ou igual a APC_LEVEL |