PALLOCATE_DOMAIN_COMMON_BUFFER función de devolución de llamada (wdm.h)
Esta función de devolución de llamada asigna la memoria de un búfer común de dominio.
Sintaxis
PALLOCATE_DOMAIN_COMMON_BUFFER PallocateDomainCommonBuffer;
NTSTATUS PallocateDomainCommonBuffer(
[in] PDMA_ADAPTER DmaAdapter,
[in] HANDLE DomainHandle,
[in, optional] PPHYSICAL_ADDRESS MaximumAddress,
[in] ULONG Length,
[in] ULONG Flags,
[in, optional] MEMORY_CACHING_TYPE *CacheType,
[in] NODE_REQUIREMENT PreferredNode,
[out] PPHYSICAL_ADDRESS LogicalAddress,
[out] PVOID *VirtualAddress
)
{...}
Parámetros
[in] DmaAdapter
Puntero a una estructura de DMA_ADAPTER. Esta estructura es el objeto de adaptador que representa el dispositivo DMA maestro de bus del controlador o el canal DMA del sistema. El autor de la llamada obtuvo este puntero de una llamada anterior a la rutina IoGetDmaAdapter .
[in] DomainHandle
Identificador del dominio DMA que el autor de la llamada obtuvo de una llamada anterior a PGET_DMA_DOMAIN.
[in, optional] MaximumAddress
Puntero a una variable que contiene la dirección lógica máxima para el búfer común. Este parámetro indica que el búfer debe asignarse desde la memoria debajo de esta dirección. Este parámetro es opcional y se puede especificar como NULL para indicar que no hay ninguna dirección máxima.
[in] Length
Tamaño, en bytes, del búfer común que se va a asignar para la operación DMA.
[in] Flags
Tamaño, en bytes, del búfer común que se va a asignar para la operación DMA.
Los valores posibles son:
DOMAIN_COMMON_BUFFER_LARGE_PAGE
El búfer común se asignará mediante una granularidad de página mayor de PAGE_SIZE * 512. Tenga en cuenta que esto puede aumentar la posibilidad de que la asignación no se realice correctamente.
[in, optional] CacheType
Puntero a una enumeración MEMORY_CACHING_TYPE que indica si la rutina debe habilitar o deshabilitar la memoria almacenada en caché en el búfer común que se va a asignar. Solo se admiten los valores de MmNonCached y MmCached . El parámetro es opcional y se puede especificar como NULL para especificar que el almacenamiento en caché dependerá del valor predeterminado de la plataforma de hardware.
[in] PreferredNode
Nodo NUMA preferido desde el que se asignará la memoria. Si N es el número de nodos NUMA en un sistema multiprocesador, PreferredNode es un número del intervalo entre 0 y N-1. Para un sistema de un procesador o un sistema multiprocesador que no sea NUMA, establezca PreferredNode en cero.
[out] LogicalAddress
Puntero a una variable en la que esta rutina escribe la dirección lógica que el dispositivo puede usar para acceder al búfer común. El dispositivo DMA debe usar esta dirección lógica en lugar de la dirección física que devuelve una rutina como MmGetPhysicalAddress.
[out] VirtualAddress
Puntero a una variable en la que esta rutina escribe la dirección virtual correspondiente del búfer asignado.
Valor devuelto
Devuelve STATUS_SUCCESS si la llamada se realiza correctamente. De lo contrario, devuelve un valor NTSTATUS adecuado.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 |
Encabezado | wdm.h (incluya Wdm.h) |
IRQL | PASSIVE_LEVEL |