Compartir a través de


Función StorPortGetLogicalUnit (storport.h)

La rutina StorPortGetLogicalUnit devuelve un puntero al área de almacenamiento por unidad lógica del controlador de miniport.

Sintaxis

STORPORT_API PVOID StorPortGetLogicalUnit(
  [in] PVOID HwDeviceExtension,
  [in] UCHAR PathId,
  [in] UCHAR TargetId,
  [in] UCHAR Lun
);

Parámetros

[in] HwDeviceExtension

Puntero a la extensión de dispositivo de hardware. Se trata de un área de almacenamiento por HBA que el controlador de puerto asigna e inicializa en nombre del controlador de minipuerto. Los controladores de minipuerto suelen almacenar información específica de HBA en esta extensión, como el estado del HBA y los intervalos de acceso asignados para el HBA. Esta área está disponible para el controlador de minipuerto en cuanto se llama a la rutina HwStorFindAdapter del controlador de minipuerto. El controlador de puerto libera esta memoria cuando quita el dispositivo.

[in] PathId

Identifica el bus SCSI.

[in] TargetId

Identifica el controlador de destino o el dispositivo en el bus.

[in] Lun

Identifica el número de unidad lógica (LU) del dispositivo de destino.

Valor devuelto

StorPortGetLogicalUnit devuelve un puntero al área de almacenamiento del controlador de minipuerto para la unidad lógica solicitada. Si la unidad lógica no existe, devuelve NULL.

Comentarios

StorPortGetLogicalUnit es irrelevante si la rutina DriverEntry del controlador de miniporte especificó cero para LuExtensionSize en el HW_INITIALIZATION_DATA cuando llamó a StorPortInitialize. De lo contrario, el controlador de puerto específico del sistema operativo asigna e inicializa con ceros un conjunto de extensiones de LU del tamaño especificado para el controlador de minipuerto que se va a usar.

El almacenamiento por LU se puede usar para almacenar datos relevantes para un periférico determinado, como punteros de datos guardados. Para acceder a esta área, el controlador de minipuerto llama a StorPortGetLogicalUnit cuando el controlador mantiene información sobre el estado o la operación actual de cualquier periférico determinado.

El controlador de puerto específico del sistema operativo puede considerar que una unidad lógica no existe si no hay ninguna solicitud activa para esa unidad lógica y el dispositivo nunca se ha seleccionado correctamente.

Nota

Cuando el controlador de minipuerto llama a StorPortGetLogicalUnit en IRQL = DISPATCH_LEVEL, la función adquiere el bloqueo de interrupción. Llamar a StorPortGetLogicalUnit con demasiada frecuencia en este nivel IRQL afecta al rendimiento y la escalabilidad del controlador de miniport.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows XP y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Universal
Encabezado storport.h (incluya Storport.h)
Library Storport.lib

Consulte también

HW_INITIALIZATION_DATA

StorPortInitialize