Condividi tramite


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

Vedere anche

StorPortFreeDeviceBase