Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
uyarı C30031: Bellek ayırma işlevini çağırma ve yürütülebilir belleği gösteren bir parametre geçirme
Kod Analizi, giriş işlevinden önce POOL_NX_OPTIN ve ExInitializeDriverRuntime(DrvRtPoolNxOptIn) çağrıldığını algıladı (örneğin, DriverEntry() veya DllInitialize()). Giriş işlevi dolaylı olarak ExInitializeDriverRuntime(DrvRtPoolNxOptIn)çağırabilir ve bu durumda hata gizlenebilir (bkz. Uyarı İletilerini Bastırmak için Pragma Prefast).
BANNED_MEM_ALLOCATION_MAYBE_SAFE
Örneği
Kaynak dosyasındaki aşağıdaki kod bu uyarıyı oluşturur:
C_DEFINES=$(C_DEFINES) -DPOOL_NX_OPTIN=1
Kod dosyasında
void MakeSafeInitialization()
{
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
}
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
MakeSafeInitialization ();
…
}
Aşağıdaki kod bu uyarıyı önler:
NTSTATUS
DriverEntry (
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
NTSTATUS status;
ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
…
}