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. Após o retorno 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.
Retornar valor
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. |
Comentários
Se a solicitação falhar, BufferPointer será definido como NULL.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10 (versão 1803) |
Plataforma de Destino | Universal |
Cabeçalho | storport.h |
Regras de conformidade de DDI | StorPortIrql |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de