Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
avviso C30035: è stata effettuata una chiamata a una funzione che deve essere eseguita dall'interno della funzione di inizializzazione , ad esempio DriverEntry() o DllInitialize()). PREfast non è riuscito a determinare se la chiamata è stata effettuata dalla funzione di inizializzazione.
BANNED_MEM_ALLOCATION_MAYBE_BAD_CALL_SITE
Il codice è stato compilato con la macro POOL_NX_OPTIN, ma l'inizializzazione non si è verificata all'interno di driverEntry() o DllInitialize(). Per risolvere questo problema, spostare la chiamata all'interno della funzione di inizializzazione.
Esempio di
Il codice seguente genera questo avviso.
Nel file sources:
C_DEFINES=$(C_DEFINES) -DPOOL_NX_OPTIN=1
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
MakeSafeInitialization ();
…
}
void MakeSafeInitialization()
{
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
}
Il codice seguente evita questo avviso:
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
…
}