C30029
Avviso: chiamata di una funzione di allocazione della memoria che richiede memoria eseguibile
Questo avviso indica che viene usata una funzione che è stata vietata e ha una sostituzione più affidabile o sicura. Questo errore specifico indica l'uso di un'API che alloca solo il pool eseguibile non di paging.
Commenti
Questa opzione deve essere usata solo se è necessaria la memoria eseguibile. Per altre informazioni, vedere No-Execute (NX) Nonpaged Pool (NX ). Non sono disponibili parametri che modificheranno questo comportamento. L'unico modo per risolvere questo problema consiste nell'usare una funzione alternativa che consente l'allocazione di memoria del pool non eseguibile non di paging. Un elenco di tutte le funzioni escluse coperte da questo errore e le sostituzioni consigliate sono disponibili dopo l'esempio seguente.
Nome analisi codice: BANNED_MEM_ALLOCATION_NOTYPE
Esempio
Il codice seguente genera questo avviso. Questo problema deriva dall'uso di MmMapIoSpace
:
MmMapIoSpace(PhysicalAddress, numberOfBytes, MmNonCached);
Il codice seguente evita questo avviso sostituendo MmMapIoSpace
con MmMapIoSpace
:
MmMapIoSpaceEx(PhysicalAddress, numberOfBytes, PAGE_NOCACHE | PAGE_READWRITE);
Funzioni escluse
API vietata | Sostituzioni | Razionale/Note |
---|---|---|
MmMapIoSpace() |
MmMapIoSpaceEx() |
|
MmAllocateContiguousMemorySpecifyCache() |
MmAllocateContiguousNodeMemory() |
A seconda del tipo di cache, SpecifyCache può essere usato in modo da limitarlo alla memoria non eseguibile. Tuttavia, l'uso di NodeMemory garantisce questo problema. Per altre informazioni, vedere C30030, sottosezione "Per i difetti relativi ai tipi di cache". |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per