Función StorPortGetDeviceBase (storport.h)

La rutina StorPortGetDeviceBase asigna una dirección de E/S al espacio de direcciones del sistema.

Sintaxis

STORPORT_API PVOID StorPortGetDeviceBase(
  [in] PVOID                 HwDeviceExtension,
  [in] INTERFACE_TYPE        BusType,
  [in] ULONG                 SystemIoBusNumber,
  [in] STOR_PHYSICAL_ADDRESS IoAddress,
  [in] ULONG                 NumberOfBytes,
  [in] BOOLEAN               InIoSpace
);

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 inmediatamente después de que el controlador de minipuerto llame a StorPortInitialize. El controlador de puerto libera esta memoria cuando quita el dispositivo.

[in] BusType

Especifica el tipo de interfaz del bus de E/S en el que está conectado el HBA. La rutina HwStorFindAdapter del controlador miniport obtiene el valor de este parámetro del miembro AdapterInterfaceType del PORT_CONFIGURATION_INFORMATION de entrada.

[in] SystemIoBusNumber

Especifica el número asignado por el sistema del bus de E/S en el que está conectado el HBA. La rutina HwStorFindAdapter obtiene el valor de este parámetro del miembro SystemIoBusNumber del PORT_CONFIGURATION_INFORMATION de entrada.

[in] IoAddress

Especifica la dirección base relativa al bus de un intervalo utilizado por el HBA. La rutina HwStorFindAdapter obtiene el valor de este parámetro de uno de los elementos AccessRanges de la PORT_CONFIGURATION_INFORMATION si el controlador de puerto proporciona información de configuración de intervalo. De lo contrario, esta dirección puede ser un valor devuelto por StorPortGetBusData o un valor predeterminado proporcionado por el controlador miniport. Evite usar una dirección base de cero porque su estado de retorno correcto puede entrar en conflicto con el estado de error (NULL).

[in] NumberOfBytes

Especifica el tamaño en bytes del intervalo que debe cubrir la asignación. La rutina HwStorFindAdapter obtiene el valor de este parámetro del mismo elemento AccessRanges que IoAddress si el controlador de puerto proporciona información de configuración del intervalo. De lo contrario, StorPortGetBusData puede devolver este valor o un valor predeterminado proporcionado por el controlador miniport. En cualquier caso, el controlador no debe tener acceso al hardware fuera del intervalo devuelto asignado.

[in] InIoSpace

TRUE indica que el intervalo que se va a asignar está en el espacio de E/S y el controlador de miniporte pasará direcciones asignadas en este intervalo a las rutinas de lectura y escritura del puerto storport para comunicarse con el HBA. La rutina HwStorFindAdapter obtiene el valor de este parámetro del mismo elemento AccessRanges que IoAddress. Tenga en cuenta que un controlador de minipuerto debe invertir el valor del miembro InMemorySpace en un elemento de tipo ACCESS_RANGE antes de pasarlo a StorPortGetDeviceBase como argumento InIoSpace . FALSE indica que el intervalo que se va a asignar está en el espacio de memoria.

Valor devuelto

Una dirección base lógica asignada correspondiente a la dirección relativa al bus proporcionada en el parámetro IoAddress .

Comentarios

Cada controlador de minipuerto debe pasar direcciones de intervalo de acceso lógico asignados a las rutinas de lectura y escritura del puerto de Storport y las rutinas de lectura y escritura del registro de Storport al comunicarse con sus HBA(s).

Esta rutina solo admite las direcciones asignadas al controlador por el administrador del sistema Plug and Play (PnP).

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado storport.h (incluya Storport.h)
Library Storport.lib

Consulte también

StorPortFreeDeviceBase