Função StorPortAllocateDmaMemory (storport.h)
Essa função é a versão estendida da função StorPortAllocateContiguousMemorySpecifyCacheNode. Ele aloca um intervalo de memória não armazenada em cache fisicamente contígua e nãopagada e retorna o endereço físico do buffer alocado.
Sintaxe
ULONG StorPortAllocateDmaMemory(
[in] PVOID HwDeviceExtension,
[in] SIZE_T NumberOfBytes,
[in] PHYSICAL_ADDRESS LowestAcceptableAddress,
[in] PHYSICAL_ADDRESS HighestAcceptableAddress,
[in, optional] PHYSICAL_ADDRESS BoundaryAddressMultiple,
[in] MEMORY_CACHING_TYPE CacheType,
[in] NODE_REQUIREMENT PreferredNode,
[out] PVOID *BufferPointer,
[out] PPHYSICAL_ADDRESS PhysicalAddress
);
Parâmetros
[in] HwDeviceExtension
Um ponteiro para a extensão do dispositivo de hardware para o HBA (adaptador de barramento de host).
[in] NumberOfBytes
O número de bytes a serem alocados.
[in] LowestAcceptableAddress
O endereço físico mais baixo válido para a alocação. Por exemplo, se o dispositivo só puder fazer referência à memória física no intervalo de 8 MB a 16 MB, esse valor será definido como 0x800000 (8 MB).
[in] HighestAcceptableAddress
O endereço físico mais alto válido para a alocação. Por exemplo, se o dispositivo só puder fazer referência à memória física abaixo de 16 MB, esse valor será definido como 0xFFFFFF (16 MB – 1).
[in, optional] BoundaryAddressMultiple
O endereço físico múltiplo que essa alocação não deve cruzar.
[in] CacheType
O tipo de cache desejado para o mapeamento.
[in] PreferredNode
O nó preferencial do qual a alocação deve ser feita se as páginas estiverem disponíveis nesse nó.
[out] BufferPointer
A variável que recebe o endereço inicial do bloco de memória alocado. Ao retornar dessa rotina, se essa variável for zero, não foi possível encontrar um intervalo contíguo para atender à solicitação. Se essa variável não for NULL, ela conterá um ponteiro (por exemplo, um endereço virtual na parte nãopagada do sistema) para a memória fisicamente contígua alocada.
[out] PhysicalAddress
Endereço físico do bloco de memória alocado.
Valor de retorno
Essa função retorna um código STOR_STATUS.
Código de retorno | Descrição |
---|---|
STOR_STATUS_NOT_IMPLEMENTED | Essa função não é implementada no sistema operacional ativo. |
STOR_STATUS_SUCCESS | A operação foi bem-sucedida. |
STOR_STATUS_INSUFFICIENT_RESOURCES | A operação falhou ao alocar a memória solicitada devido a recursos insuficientes. |
Observações
Se a solicitação falhar, o BufferPointer será definido como NULL.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10 (versão 1803) |
da Plataforma de Destino | Universal |
cabeçalho | storport.h |
regras de conformidade de DDI | StorPortIrql |