Metodo IPortWaveRTStream::AllocateContiguousPagesForMdl (portcls.h)
Il AllocateContiguousPagesForMdl
metodo alloca un elenco di pagine di memoria fisica contigue, non di paging e restituisce un puntatore a un elenco di descrittori di memoria (MDL) che li descrive.
Sintassi
PMDL AllocateContiguousPagesForMdl(
[in] PHYSICAL_ADDRESS LowAddress,
[in] PHYSICAL_ADDRESS HighAddress,
[in] SIZE_T TotalBytes
);
Parametri
[in] LowAddress
Specifica l'estremità inferiore dell'intervallo di indirizzi da cui è possibile allocare lo spazio di archiviazione per il file MDL.
[in] HighAddress
Specifica l'estremità superiore dell'intervallo di indirizzi da cui è possibile allocare lo spazio di archiviazione per il file MDL.
[in] TotalBytes
Specifica il numero totale di byte da allocare per MDL. Questo metodo alloca sempre un numero integrale di pagine di memoria.
Valore restituito
AllocateContiguousPagesForMdl
restituisce un puntatore a un MDL (PMDL) che descrive un elenco di pagine di memoria fisica. Se il metodo non è in grado di allocare il buffer richiesto, restituisce NULL.
Commenti
Il driver chiama questo metodo per allocare un blocco di pagine di memoria fisicamente contigue. Tutte le pagine di memoria fisica nel file MDL rientrano nell'intervallo di indirizzi specificato dai parametri LowAddress e HighAddress . Se è disponibile memoria sufficiente, l'allocazione della memoria è la dimensione richiesta arrotondata per enumere alla pagina successiva; in caso contrario, la chiamata ha esito negativo.
Dopo l'esecuzione di un sistema per un certo periodo di tempo, il pool di memoria non in pagine del sistema tende a diventare frammentato, aumentando la probabilità che una richiesta di allocare un blocco di memoria fisica contigua avrà esito negativo. Se il controller DMA del dispositivo audio non richiede che le pagine di memoria fisica siano contigue, il driver deve chiamare invece IPortWaveRTStream::AllocatePagesForMdl . A differenza di AllocateContiguousPagesForMdl
, il metodo AllocatePagesForMdl non è influenzato dalla frammentazione della memoria.
Il AllocateContiguousPagesforMdl
metodo alloca pagine di memoria bloccate (non di paging) ma non mappate. Se il driver miniport richiede l'accesso software a questa memoria, il driver miniport deve effettuare una chiamata successiva a IPortWaveRTStream::MapAllocatedPages per eseguire il mapping delle pagine nello spazio indirizzi in modalità kernel.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows Vista e nei sistemi operativi Windows successivi. |
Piattaforma di destinazione | Universale |
Intestazione | portcls.h |
IRQL | Livello passivo |