Funzione StorPortGetDeviceBase (storport.h)
La routine StorPortGetDeviceBase esegue il mapping di un indirizzo 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 per hba che il driver di porta alloca e inizializza per conto del driver miniport. I driver Miniport archivia in genere 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 subito dopo che il driver miniport chiama StorPortInitialize. Il driver della 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 del driver miniport HwStorFindAdapter ottiene il valore per questo parametro dal membro AdapterInterfaceType dell'input PORT_CONFIGURATION_INFORMATION.
[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 dell'input PORT_CONFIGURATION_INFORMATION.
[in] IoAddress
Specifica l'indirizzo di base relativo al bus di un intervallo utilizzato dall'HBA. La routine HwStorFindAdapter ottiene il valore per questo parametro da uno degli elementi AccessRanges nel PORT_CONFIGURATION_INFORMATION se il driver della 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 deve coprire il mapping. La routine HwStorFindAdapter ottiene il valore di questo parametro dallo stesso elemento AccessRanges come IoAddress se il driver della 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 ogni caso, il driver non deve accedere all'hardware all'esterno dell'intervallo restituito, mappato.
[in] InIoSpace
TRUE indica che l'intervallo di cui eseguire il mapping è nello spazio di I/O e il driver miniport passerà gli indirizzi mappati in questo intervallo alla porta Storport routine di lettura/scrittura per comunicare con l'HBA. La routine HwStorFindAdapter ottiene il valore di questo parametro dallo stesso elemento AccessRanges come 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 di cui eseguire il mapping è nello spazio di memoria.
Valore restituito
Indirizzo di base logico mappato corrispondente all'indirizzo relativo al bus fornito nel parametro IoAddress.
Osservazioni
Ogni driver miniport deve passare gli indirizzi dell'intervallo di accesso logico mappato alla porta Storport routine di lettura/scrittura e il registro Storport routine di lettura/scrittura durante la comunicazione con i relativi HBA.
Questa routine supporta solo gli indirizzi assegnati al driver dal gestore Plug and Play (PnP) di sistema.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | storport.h (include Storport.h) |
libreria | Storport.lib |