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 ReadStructFromUser lê com segurança uma estrutura da memória do modo de usuário.
Syntax
void ReadStructFromUser(
Destination,
Source
);
Parameters
Destination
[out] Um ponteiro para a estrutura que recebe os dados lidos da memória do modo de usuário.
Source
[in] Um ponteiro para o local de memória do modo de usuário do qual ler a estrutura.
Return value
None
Remarks
Essa macro fornece uma maneira segura de ler uma estrutura da 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 lê-lo.
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 origem 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 |