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 |