Compartilhar via


Função StorPortGetPhysicalAddress (storport.h)

O StorPortGetPhysicalAddress rotina converte um determinado intervalo de endereços virtuais em um intervalo de endereços físico para uma operação DMA.

Sintaxe

STORPORT_API STOR_PHYSICAL_ADDRESS StorPortGetPhysicalAddress(
  [in]           PVOID               HwDeviceExtension,
  [in, optional] PSCSI_REQUEST_BLOCK Srb,
  [in]           PVOID               VirtualAddress,
  [out]          ULONG               *Length
);

Parâmetros

[in] HwDeviceExtension

Um ponteiro para a extensão do dispositivo de hardware. Essa é uma área de armazenamento por HBA que o driver de porta aloca e inicializa em nome do driver de miniporto. Os drivers de miniporto geralmente armazenam informações específicas do HBA nessa extensão, como o estado do HBA e os intervalos de acesso mapeados para o HBA. Essa área está disponível para o driver de miniporto no DeviceExtension->HwDeviceExtension membro do objeto do dispositivo para o HBA imediatamente após o driver de miniporto chamar StorPortInitialize. O driver de porta libera essa memória quando remove o dispositivo.

[in, optional] Srb

Ponteiro para o bloco de solicitação SCSI se o endereço virtual a ser convertido for proveniente do membro DataBuffer do SRB ou membro SenseInfoBuffer. Caso contrário, esse parâmetro deve ser NULL.

[in] VirtualAddress

Ponteiro para o endereço virtual base a ser convertido. Se esse endereço virtual estiver dentro do intervalo de um do DataBufferfornecido por SRB, o chamador também deverá fornecer o ponteiro Srb.

[out] Length

Ponteiro para um valor que indica o número de bytes mapeados, começando no endereço físico retornado.

Valor de retorno

StorPortGetPhysicalAddress retorna o endereço físico correspondente para um determinado endereço virtual. Se o endereço determinado não puder ser convertido, a função retornará NULL.

Observações

Se o endereço virtual passado para StorPortGetPhysicalAddress for obtido de StorPortAllocateContiguousMemorySpecifyCacheNode, o valor retornado para Length deverá ser ignorado.

A partir do Windows 8, o parâmetro Srb pode apontar para SCSI_REQUEST_BLOCK ou STORAGE_REQUEST_BLOCK. Se o identificador de função no campo de Função de Srb for SRB_FUNCTION_STORAGE_REQUEST_BLOCK, o SRB será uma estrutura de solicitação STORAGE_REQUEST_BLOCK.

StorPortGetPhysicalAddress usa STOR_PHYSICAL_ADDRESS para representar endereços físicos.

typedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS, *PSTOR_PHYSICAL_ADDRESS;

O tipo STOR_PHYSICAL_ADDRESS é um tipo de dados independente do sistema operacional que os drivers de miniporto storport usam para representar um endereço físico ou um endereço relativo ao barramento.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho storport.h (inclua Storport.h)
biblioteca Storport.lib

Consulte também

SCSI_REQUEST_BLOCK

STORAGE_REQUEST_BLOCK

ScsiPortGetPhysicalAddress