Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
aviso C30031: Chamando uma função de alocação de memória e passando um parâmetro que indica memória executável
A Análise de Código detectou o uso de POOL_NX_OPTIN e ExInitializeDriverRuntime(DrvRtPoolNxOptIn) foi chamado antes da função de entrada (por exemplo, DriverEntry() ou DllInitialize()). É possível que a função de entrada chame indiretamente ExInitializeDriverRuntime(DrvRtPoolNxOptIn), nesse caso, o erro pode ser suprimido (consulte Pragma Prefast to Suppress Warning Messages).
BANNED_MEM_ALLOCATION_MAYBE_SAFE
Exemplo de
O código a seguir no arquivo de origem gera este aviso:
C_DEFINES=$(C_DEFINES) -DPOOL_NX_OPTIN=1
No arquivo de código
void MakeSafeInitialization()
{
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
}
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
MakeSafeInitialization ();
…
}
O código a seguir evita este aviso:
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
…
}