Função MmSecureVirtualMemoryEx (ntddk.h)
Essa rotina investiga o intervalo de endereços solicitado e protege o intervalo de endereços especificado de tornar sua proteção mais restritiva e ser excluída.
Sintaxe
HANDLE MmSecureVirtualMemoryEx(
PVOID Address,
SIZE_T Size,
ULONG ProbeMode,
ULONG Flags
);
Parâmetros
Address
Ponteiro para o endereço base para sondar e proteger.
Size
Especifica o tamanho, em bytes, do intervalo a ser seguro.
ProbeMode
Especifica a proteção de página mais restritiva permitida. Use PAGE_READWRITE para especificar que o intervalo de endereços deve permanecer legível e gravável ou usar PAGE_READONLY para especificar que o intervalo de endereços só deve permanecer legível.
ProbeMode | Significado |
---|---|
PAGE_READWRITE | A proteção não pode ser alterada para PAGE_NOACCESS ou PAGE_READONLY. Todas as outras alterações de proteção são permitidas. |
PAGE_READONLY | A proteção não pode ser alterada para PAGE_NOACCESS. Todas as outras alterações de proteção são permitidas. |
Flags
Especifica um ou mais dos seguintes sinalizadores:
Sinalizador | Descrição |
---|---|
MM_SECURE_EXCLUSIVE | A proteção só terá êxito se não houver outros seguros já fixados em qualquer lugar no VAD em questão. |
MM_SECURE_NO_CHANGE | Depois de aplicada, nenhuma alteração de proteção é permitida para a região de endereço virtual fornecida. A região ainda poderá ser excluída se o processo estiver saindo. |
MM_SECURE_USER_MODE_ONLY | A proteção especificada por essa proteção só será aplicada a chamadas subsequentes do modo de usuário que estão tentando alterar a proteção (os chamadores do modo kernel ignorarão essa proteção). |
MM_SECURE_NO_INHERIT | Se o processo for clonado, ao contrário do processo pai, o VAD do processo filho não será protegido. |
Retornar valor
Retorna um valor semelhante a um identificador a ser usado apenas para desacasar o intervalo.
Se o intervalo não puder ser bloqueado devido a problemas de proteção, memória não confirmada ou parâmetros inválidos, essa rotina retornará NULL.
Comentários
Use MmSecureVirtualMemoryEx em vez de MmSecureVirtualMemory se precisar especificar MM_SECURE_NO_CHANGE para que nenhuma alteração de proteção seja permitida no modo de exibição fornecido.
O valor retornado dessa função só pode ser usado com MmUnsecureVirtualMemory. O driver chama essa rotina para retornar o intervalo para um estado normal.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 1809 |
Cabeçalho | ntddk.h |
IRQL | APC_LEVEL |