Função StorPortGetPfns (storport.h)

A rotina StorPortGetPfns pode ser chamada quando um miniporto precisa recuperar PFNs associados a um MDL para um SRB.

Sintaxe

ULONG StorPortGetPfns(
  [in]  PVOID               HwDeviceExtension,
  [in]  PSCSI_REQUEST_BLOCK Srb,
  [in]  PVOID               Mdl,
  [out] PVOID               *Pfns,
  [out] ULONG               *PfnCount,
  [out] ULONG               *StartingOffset
);

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 miniport.

[in] Srb

Um ponteiro para o SRB (bloco de solicitação SCSI de origem).

[in] Mdl

Um ponteiro para o MDL para o qual os Pfns são solicitados. Somente MDLs obtidos usando StorPortGetOriginalMdl ou StorPortGetDataInBufferMdl têm suporte.

[out] Pfns

Um ponteiro para o início da matriz de números de página física associados ao MDL. Os chamadores NÃO devem modificar ou atualizar ou liberar a lista.

[out] PfnCount

Especifica o número de PFNs na matriz.

[out] StartingOffset

Especifica o deslocamento de bytes na página inicial do buffer descrito pelo MDL fornecido.

Retornar valor

StorPortGetPfns retorna um dos seguintes códigos de status:

Código de retorno Descrição
STOR_STATUS_NOT_IMPLEMENTED Essa função não é implementada no sistema operacional ativo.
STOR_STATUS_SUCCESS Os itens da lista foram removidos com êxito ou a lista já está vazia.
STOR_STATUS_INVALID_PARAMETER Um ponteiro para um dos parâmetros é NULL.

Comentários

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 membro DeviceExtension-HwDeviceExtension> do objeto de 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.

Começando em Windows 8, o parâmetro Srb pode apontar para SCSI_REQUEST_BLOCK ou STORAGE_REQUEST_BLOCK.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho storport.h

Confira também

StorPortGetDataInBufferMdl

StorPortGetOriginalMdl

StorPortInitialize