Função StorPortGetLogicalUnit (storport.h)
A rotina StorPortGetLogicalUnit retorna um ponteiro para a área de armazenamento por unidade lógica do driver de miniport.
Sintaxe
STORPORT_API PVOID StorPortGetLogicalUnit(
[in] PVOID HwDeviceExtension,
[in] UCHAR PathId,
[in] UCHAR TargetId,
[in] UCHAR Lun
);
Parâmetros
[in] HwDeviceExtension
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 estará disponível para o driver de miniporto assim que a rotina dedeHwStorFindAdapter do driver de miniporto for chamada. O driver de porta libera essa memória quando remove o dispositivo.
[in] PathId
Identifica o barramento SCSI.
[in] TargetId
Identifica o controlador de destino ou o dispositivo no barramento.
[in] Lun
Identifica o número lu (unidade lógica) do dispositivo de destino.
Valor de retorno
StorPortGetLogicalUnit retorna um ponteiro para a área de armazenamento do driver de miniporto para a unidade lógica solicitada. Se a unidade lógica não existir, ela retornará NULL.
Observações
StorPortGetLogicalUnit será irrelevante se a rotina DriverEntry do driver de miniporto especificar zero para o LuExtensionSize no HW_INITIALIZATION_DATA quando chamou StorPortInitialize. Caso contrário, o driver de porta específico do sistema operacional aloca e inicializa com zeros um conjunto de extensões LU do tamanho especificado para o driver de miniporto a ser usado.
Per-LU armazenamento pode ser usado para armazenar dados relevantes para um periférico específico, como ponteiros de dados salvos. Para acessar essa área, o driver de miniporto chama StorPortGetLogicalUnit quando o driver está mantendo informações sobre o estado da operação atual ou de qualquer periférico específico.
O driver de porta específico do sistema operacional pode considerar uma unidade lógica inexistente se não houver nenhuma solicitação ativa para essa unidade lógica e o dispositivo nunca tiver sido selecionado com êxito.
Nota
Quando o driver de miniporto chama StorPortGetLogicalUnit em IRQL = DISPATCH_LEVEL, a função adquire o bloqueio de interrupção. Chamar StorPortGetLogicalUnit com muita frequência nesse nível de IRQL afeta o desempenho e a escalabilidade do driver de miniporto.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Windows XP e versões posteriores dos sistemas operacionais Windows. |
da Plataforma de Destino | Universal |
cabeçalho | storport.h (inclua Storport.h) |
biblioteca | Storport.lib |