Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
upozornění C30031: Volání funkce přidělování paměti a předání parametru, který označuje spustitelný paměť
Analýza kódu zjistila použití POOL_NX_OPTIN a ExInitializeDriverRuntime(DrvRtPoolNxOptIn) byla volána před vstupní funkcí (například DriverEntry() nebo DllInitialize()). Je možné, že vstupní funkce nepřímo volá ExInitializeDriverRuntime(DrvRtPoolNxOptIn), v takovém případě může být chyba potlačena (viz Pragma Prefast potlačovat zprávy upozornění).
BANNED_MEM_ALLOCATION_MAYBE_SAFE
příklad
Následující kód v souboru zdrojů vygeneruje toto upozornění:
C_DEFINES=$(C_DEFINES) -DPOOL_NX_OPTIN=1
V souboru kódu
void MakeSafeInitialization()
{
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
}
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
MakeSafeInitialization ();
…
}
Následující kód se vyhne tomuto upozornění:
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
…
}