Função MmProtectMdlSystemAddress (wdm.h)

A rotina MmProtectMdlSystemAddress define o tipo de proteção para um intervalo de endereços de memória.

Sintaxe

NTSTATUS MmProtectMdlSystemAddress(
  [in] PMDL  MemoryDescriptorList,
  [in] ULONG NewProtect
);

Parâmetros

[in] MemoryDescriptorList

Especifica o intervalo de endereços de memória para o qual definir o tipo de proteção.

[in] NewProtect

Especifica a nova configuração de proteção para as páginas de memória. Os drivers devem especificar um dos seguintes valores:

PAGE_NOACCESS

As páginas de memória subjacentes não podem ser lidas ou gravadas.

PAGE_READONLY

As páginas de memória subjacentes só podem ser lidas, não gravadas.

PAGE_READWRITE

As páginas de memória subjacentes podem ser lidas ou gravadas.

PAGE_EXECUTE

As páginas de memória subjacentes podem ser executadas, mas não lidas ou gravadas.

PAGE_EXECUTE_READ

As páginas de memória subjacentes podem ser executadas ou lidas, mas não gravadas.

PAGE_EXECUTE_READWRITE

As páginas de memória subjacentes podem ser executadas, lidas ou gravadas.

Retornar valor

MmProtectMdlSystemAddress retorna um código NTSTATUS. Os possíveis valores retornados incluem:

Código de retorno Descrição
STATUS_SUCCESS
A rotina alterou com êxito o tipo de proteção para o intervalo de endereços de memória.
STATUS_INVALID_PAGE_PROTECTION
O valor especificado para NewProtect não é válido para essa rotina.
STATUS_NOT_MAPPED_VIEW
O MDL ainda não foi mapeado. MmProtectMdlSystemAddress só pode ser usado em MDLs que já foram mapeadas.

Comentários

A rotina MmProtectMdlSystemAddress só pode ser chamada em um MDL que já foi mapeado. Por exemplo, a rotina pode ser chamada em um MDL mapeado por MmMapLockedPagesSpecifyCache.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows XP e versões posteriores do Windows.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

Confira também

MmMapLockedPagesSpecifyCache