Compartilhar via


Acessando memória de User-Space

Um driver não pode acessar diretamente a memória por meio de endereços virtuais no modo de usuário, a menos que seja:

  • Em execução no contexto do thread do modo de usuário que causou a operação de E/S atual do driver.
  • Usando os endereços virtuais desse thread.

Os drivers devem usar a interface User-mode Accessors (UMA) 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 de um thread de modo 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.

Drivers intermediários e de nível mais baixo que configuram seus objetos de dispositivo para E/S em buffer ou E/S direta podem contar com o gerenciador de E/S ou um driver de nível mais alto para passar acesso válido a buffers de usuário bloqueados ou a buffers de espaço do sistema em IRPs.