Função StreamClassGetPhysicalAddress (strmini.h)
A rotina StreamClassGetPhysicalAddress converte um endereço de memória virtual em um endereço de memória física e bloqueia a memória física correspondente para uma operação de DMA.
Sintaxe
STREAM_PHYSICAL_ADDRESS STREAMAPI StreamClassGetPhysicalAddress(
[in] PVOID HwDeviceExtension,
[in, optional] PHW_STREAM_REQUEST_BLOCK HwSRB,
[in] PVOID VirtualAddress,
[in] STREAM_BUFFER_TYPE Type,
[out] ULONG *Length
);
Parâmetros
[in] HwDeviceExtension
Ponteiro para a extensão de dispositivo do minidriver. O minidriver especifica o tamanho desse buffer na estrutura HW_INITIALIZATION_DATA que ele passa quando se registra por meio de StreamClassRegisterMinidriver. Em seguida, o driver de classe passa ponteiros para o buffer no membro HwDeviceExtension do HW_STREAM_REQUEST_BLOCK, HW_STREAM_OBJECT, HW_TIME_CONTEXT e PORT_CONFIGURATION_INFORMATION estruturas que ele passa para o minidriver.
[in, optional] HwSRB
Especifica um bloco de solicitação de fluxo. Esse parâmetro será usado somente se o parâmetro Type tiver o valor SRBDataBuffer, caso contrário, HwSRB deverá ser NULL. Esse parâmetro é opcional.
[in] VirtualAddress
Especifica o endereço virtual a ser traduzido.
[in] Type
Especifica o tipo de buffer apontado por VirtualAddress. Esse valor pode ser PerRequestExtension, DmaBuffer ou SRBDataBuffer.
[out] Length
Especifica o comprimento, em bytes, do buffer.
Retornar valor
StreamClassGetPhysicalAddress retorna o endereço virtual traduzido como um endereço de memória física.
Comentários
O tipo de buffer a ser usado é especificado no parâmetro Type . Os significados desses valores são mostrados na tabela a seguir.
Tipo de buffer | Descrição |
---|---|
PerRequestExtension | Indica o endereço físico da extensão SRB. |
DmaBuffer | Indica o endereço físico do buffer de DMA. |
SRBDataBuffer | Indica o endereço físico do buffer de dados. |
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | strmini.h (inclua Strmini.h) |
Biblioteca | Stream.lib |