Condividi tramite


struttura VIRTUAL_HW_INITIALIZATION_DATA (storport.h)

La struttura VIRTUAL_HW_INITIALIZATION_DATA contiene informazioni specifiche per ogni driver miniport virtuale.

Sintassi

typedef struct _VIRTUAL_HW_INITIALIZATION_DATA {
  ULONG                       HwInitializationDataSize;
  INTERFACE_TYPE              AdapterInterfaceType;
  PHW_INITIALIZE              HwInitialize;
  PHW_STARTIO                 HwStartIo;
  PHW_INTERRUPT               HwInterrupt;
  PVIRTUAL_HW_FIND_ADAPTER    HwFindAdapter;
  PHW_RESET_BUS               HwResetBus;
  PHW_DMA_STARTED             HwDmaStarted;
  PHW_ADAPTER_STATE           HwAdapterState;
  ULONG                       DeviceExtensionSize;
  ULONG                       SpecificLuExtensionSize;
  ULONG                       SrbExtensionSize;
  ULONG                       NumberOfAccessRanges;
  PVOID                       Reserved;
  UCHAR                       MapBuffers;
  BOOLEAN                     NeedPhysicalAddresses;
  BOOLEAN                     TaggedQueuing;
  BOOLEAN                     AutoRequestSense;
  BOOLEAN                     MultipleRequestPerLu;
  BOOLEAN                     ReceiveEvent;
  USHORT                      VendorIdLength;
  PVOID                       VendorId;
  union {
    USHORT ReservedUshort;
    USHORT PortVersionFlags;
  };
  USHORT                      DeviceIdLength;
  PVOID                       DeviceId;
  PHW_ADAPTER_CONTROL         HwAdapterControl;
  PHW_BUILDIO                 HwBuildIo;
  PHW_FREE_ADAPTER_RESOURCES  HwFreeAdapterResources;
  PHW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;
  PHW_COMPLETE_SERVICE_IRP    HwCompleteServiceIrp;
  PHW_INITIALIZE_TRACING      HwInitializeTracing;
  PHW_CLEANUP_TRACING         HwCleanupTracing;
} VIRTUAL_HW_INITIALIZATION_DATA, *PVIRTUAL_HW_INITIALIZATION_DATA;

Members

HwInitializationDataSize

Specifica le dimensioni di questa struttura in byte, come restituito da sizeof(). Questo membro indica la versione di questa struttura utilizzata dal driver miniport virtuale. La routine DriverEntry di un driver miniport virtuale deve impostare il valore di questo membro per il driver della porta.

AdapterInterfaceType

Per i driver miniport virtuali storport, il valore di AdapterInterfaceType sarà quasi sempre interno. Ciò è dovuto al fatto che il driver Storport non supporta gli autobus legacy.

Si noti che per questo motivo, la maggior parte dei tipi di interfaccia di adattatore usati con il driver della porta SCSI non è valida per i driver Storport. In particolare, Storport non supporta:

  • Isa
  • Eisa
  • MicroChannel
  • TurboChannel

Inoltre, a differenza del caso della porta SCSI, non è necessario un driver miniport virtuale che funziona con il driver Storport per fornire i valori per i membri seguenti:

  • VendorIdLength
  • VendorId
  • DeviceIdLength
  • Deviceid

HwInitialize

Puntatore alla routine HwStorInitialize del driver miniport virtuale, che è un punto di ingresso obbligatorio per tutti i driver miniport virtuali.

HwStartIo

Puntatore alla routine HwStorStartIo del driver miniport virtuale, che è un punto di ingresso obbligatorio per tutti i driver miniport virtuali.

HwInterrupt

Non usato. I driver miniport virtuali non elaborano interruzioni.

HwFindAdapter

Puntatore alla routine VirtualHwStorFindAdapter del driver miniport virtuale, che è un punto di ingresso obbligatorio per tutti i driver miniport virtuali.

HwResetBus

Puntatore alla routine HwStorResetBus del driver miniport virtuale, che è un punto di ingresso obbligatorio per tutti i driver miniport virtuali.

HwDmaStarted

Non usato. I driver miniport virtuali non eseguono DMA.

HwAdapterState

Il driver Storport non supporta driver legacy. Pertanto, questo membro deve essere NULL.

DeviceExtensionSize

Specifica le dimensioni, in byte, richieste dal driver miniport virtuale per l'estensione del dispositivo non di paging per scheda. Un driver miniport virtuale usa l'estensione del dispositivo come risorsa di archiviazione per informazioni sull'adattatore determinato dal driver. Il driver di porta specifico del sistema operativo inizializza ogni estensione del dispositivo allocata con zeri e passa un puntatore all'estensione del dispositivo specifica dell'adattatore nella maggior parte delle chiamate al driver miniport virtuale. Le dimensioni specificate non includono alcun driver miniport virtuale richiesto per ogni unità logica di archiviazione.

SpecificLuExtensionSize

Specifica le dimensioni, in byte, richieste dal driver miniport virtuale per l'archiviazione non di paging per unità logica, se presenti. Un driver miniport virtuale può usare le estensioni dell'unità logica (LU) come risorsa di archiviazione per informazioni lu determinate dal driver sulle periferiche nel bus virtuale. Il driver di porta specifico del sistema operativo inizializza ogni estensione LU allocata con zeri. Lasciare questo membro impostato su zero se il driver miniport virtuale non gestisce le informazioni per lu per cui richiede l'archiviazione.

SrbExtensionSize

Specifica le dimensioni, in byte, richieste dal driver miniport virtuale per l'archiviazione non di paging per richiesta, se presente. Poiché i driver miniport virtuali che funzionano con il driver Storport devono supportare elenchi a dispersione/raccolta e gli elenchi di dispersione/raccolta per SRB vengono in genere allocati nell'estensione SRB, questo membro è raramente zero.

NumberOfAccessRanges

Non usato. I driver miniport virtuali non supportano l'hardware.

Reserved

Riservato per l'utilizzo nel sistema.

MapBuffers

Nome Descrizione
STOR_MAP_NO_BUFFERS Esegue il mapping del buffer solo per SRB_FUNCTION_IO_CONTROL e SRB_FUNCTION_WMI.
STOR_MAP_ALL_BUFFERS Obsoleto, lo stesso comportamento di STOR_MAP_NON_READ_WRITE_BUFFERS.
STOR_MAP_NON_READ_WRITE_BUFFERS Esegue il mapping del buffer per le richieste di I/O ad eccezione di READ e WRITE.
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE Esegue il mapping del buffer per tutte le richieste di I/O, tra cui READ e WRITE. I driver Miniport usano in genere questa impostazione.

NeedPhysicalAddresses

Non usato. I driver miniport virtuali non supportano l'hardware.

TaggedQueuing

Deve essere impostato su TRUE. Il valore TRUE indica che il driver miniport virtuale supporta l'accodamento con tag.

AutoRequestSense

Deve essere impostato su TRUE. Un valore TRUE indica che l'HBA può eseguire un'operazione di rilevamento della richiesta senza richiedere una richiesta esplicita.

MultipleRequestPerLu

Deve essere impostato su TRUE. Un valore TRUE indica che il driver miniport virtuale può accodamento di più richieste per unità logica (LU).

ReceiveEvent

Questo valore non viene più usato e può essere impostato su TRUE o FALSE.

VendorIdLength

Lunghezza, in byte, dell'identificatore del fornitore.

VendorId

Identificatore del fornitore.

ReservedUshort

Riservato.

PortVersionFlags

Bitmap di flag che indicano le funzionalità supportate dal driver di porta. Attualmente, l'unico flag disponibile è SP_VER_TRACE_SUPPORT, che indica che il driver della porta supporta la traccia.

DeviceIdLength

Lunghezza, in byte, dell'identificatore del dispositivo.

DeviceId

Identificatore del dispositivo.

HwAdapterControl

Puntatore alla routine HwStorAdapterControl del driver miniport virtuale.

HwBuildIo

Questo membro non viene utilizzato.

HwFreeAdapterResources

Puntatore alla routine HwStorFreeAdapterResources del driver miniport virtuale, che è un punto di ingresso obbligatorio per tutti i driver miniport virtuali.

HwProcessServiceRequest

Puntatore alla routine HwStorProcessServiceRequest del driver miniport virtuale.

HwCompleteServiceIrp

Puntatore alla routine HwStorCompleteServiceIrp del driver miniport virtuale.

HwInitializeTracing

Puntatore alla routine HwStorInitializeTracing del driver miniport virtuale.

HwCleanupTracing

Puntatore alla routine HwStorCleanupTracing del driver miniport virtuale.

Commenti

Se un driver miniport virtuale verrà eseguito solo in Windows 8 o versione successiva, il driver deve usare la struttura HW_INITIALIZATION_DATA anziché VIRTUAL_HW_INITIALIZATION_DATA.

Requisiti

Requisito Valore
Intestazione storport.h (include Storport.h)

Vedi anche

HwStorAdapterControl

HwStorCleanupTracing

HwStorCompleteServiceIrp

HwStorFreeAdapterResources

HwStorInitialize

HwStorInitializeTracing

HwStorProcessServiceRequest

HwStorResetBus

HwStorStartIo

VirtualHwStorFindAdapter