Partilhar via


Acessar a memória User-Space

Um driver não pode acessar diretamente a memória através de endereços virtuais de modo de usuário, a menos que:

  • Execução no contexto da thread em modo de utilizador que originou a operação de E/S atual do driver.
  • Usando os endereços virtuais desse thread.

Os drivers devem usar a interface UMA (User-mode Accessors) para acessar a memória do modo de usuário com segurança.

Somente drivers de nível mais alto, como FSDs, podem ter certeza de que suas rotinas de despacho serão chamadas no contexto desse thread de modo de usuário. Um driver de nível mais alto pode chamar MmProbeAndLockPages para bloquear um buffer de usuário antes de configurar um IRP para drivers inferiores.

Os drivers de nível mais baixo e intermediário que configuram os seus objetos de dispositivo para E/S em buffer ou E/S direta podem contar com o gestor de E/S ou um driver de nível mais alto para assegurar acesso válido a buffers de utilizador bloqueados ou a buffers de espaço de sistema nos IRPs.