Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Warnung C30031: Aufrufen einer Speicherzuweisungsfunktion und Übergeben eines Parameters, der ausführbaren Speicher angibt
Die Codeanalyse hat die Verwendung von POOL_NX_OPTIN und ExInitializeDriverRuntime(DrvRtPoolNxOptIn) erkannt, vor der Eintragsfunktion aufgerufen wurde (z. B. DriverEntry() oder DllInitialize()). Es ist möglich, dass die Eintragsfunktion indirekt ExInitializeDriverRuntime(DrvRtPoolNxOptIn)aufruft, in diesem Fall kann der Fehler unterdrückt werden (siehe Pragma Prefast to Suppress Warning Messages).
BANNED_MEM_ALLOCATION_MAYBE_SAFE
Beispiel
Der folgende Code in der Quelldatei generiert diese Warnung:
C_DEFINES=$(C_DEFINES) -DPOOL_NX_OPTIN=1
In der Codedatei
void MakeSafeInitialization()
{
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
}
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
MakeSafeInitialization ();
…
}
Der folgende Code vermeidet diese Warnung:
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
…
}