Condividi tramite


Funzione StorPortGetDeviceBase (storport.h)

La routine StorPortGetDeviceBase esegue il mapping di un indirizzo di I/O allo spazio indirizzi del sistema.

Sintassi

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
);

Parametri

[in] HwDeviceExtension

Puntatore all'estensione del dispositivo hardware. Si tratta di un'area di archiviazione hbA che il driver di porta alloca e inizializza per conto del driver miniport. I driver miniport in genere archiviano informazioni specifiche di HBA in questa estensione, ad esempio lo stato dell'HBA e gli intervalli di accesso mappati per l'HBA. Questa area è disponibile per il driver miniport immediatamente dopo che il driver miniport chiama StorPortInitialize. Il driver di porta libera questa memoria quando rimuove il dispositivo.

[in] BusType

Specifica il tipo di interfaccia del bus di I/O in cui è connesso l'HBA. La routine HwStorFindAdapter del driver miniport ottiene il valore per questo parametro dal membro AdapterInterfaceType del PORT_CONFIGURATION_INFORMATION di input.

[in] SystemIoBusNumber

Specifica il numero assegnato dal sistema del bus di I/O in cui è connesso l'HBA. La routine HwStorFindAdapter ottiene il valore per questo parametro dal membro SystemIoBusNumber del PORT_CONFIGURATION_INFORMATION di input.

[in] IoAddress

Specifica l'indirizzo di base relativo al bus di un intervallo usato dall'HBA. La routine HwStorFindAdapter ottiene il valore per questo parametro da uno degli elementi AccessRanges nel PORT_CONFIGURATION_INFORMATION se il driver di porta fornisce informazioni sulla configurazione dell'intervallo. In caso contrario, questo indirizzo può essere un valore restituito da StorPortGetBusData o da un valore predefinito fornito dal driver miniport. Evitare di usare un indirizzo di base pari a zero perché lo stato restituito riuscito può essere in conflitto con lo stato di errore (NULL).

[in] NumberOfBytes

Specifica le dimensioni in byte dell'intervallo che il mapping deve coprire. La routine HwStorFindAdapter ottiene il valore di questo parametro dallo stesso elemento AccessRanges di IoAddress se il driver di porta fornisce informazioni di configurazione dell'intervallo. In caso contrario, questo valore può essere restituito da StorPortGetBusData o da un driver miniport fornito per impostazione predefinita. In qualsiasi caso, il driver non deve accedere all'hardware all'esterno dell'intervallo restituito, mappato.

[in] InIoSpace

TRUE indica che l'intervallo da mappare è nello spazio di I/O e il driver miniport passerà gli indirizzi mappati in questo intervallo alle routine di lettura/scrittura della porta Storport per comunicare con l'HBA. La routine HwStorFindAdapter ottiene il valore di questo parametro dallo stesso elemento AccessRanges di IoAddress. Si noti che un driver miniport deve invertire il valore del membro InMemorySpace in un elemento di tipo ACCESS_RANGE prima che venga passato a StorPortGetDeviceBase come argomento InIoSpace . FALSE indica che l'intervallo da mappare è nello spazio di memoria.

Valore restituito

Indirizzo di base logico mappato corrispondente all'indirizzo relativo al bus fornito nel parametro IoAddress .

Commenti

Ogni driver miniport deve passare gli indirizzi dell'intervallo di accesso logico mappati alle routine di lettura/scrittura della porta Storport e alle routine di lettura/scrittura del registro Storport durante la comunicazione con i relativi HBA.

Questa routine supporta solo gli indirizzi assegnati al driver dal gestore del sistema Plug and Play (PnP).

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione Storport.h (include Storport.h)
Libreria Storport.lib

Vedi anche

StorPortFreeDeviceBase