estrutura VIRTUAL_HW_INITIALIZATION_DATA (storport.h)

A estrutura VIRTUAL_HW_INITIALIZATION_DATA contém informações específicas para cada driver de miniporto virtual.

Sintaxe

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;

Membros

HwInitializationDataSize

Especifica o tamanho dessa estrutura em bytes, conforme retornado por sizeof(). Esse membro indica a versão dessa estrutura usada pelo driver de miniporto virtual. A rotina DriverEntry de um driver de miniporto virtual deve definir o valor desse membro para o driver de porta.

AdapterInterfaceType

Para drivers de miniportos virtuais storport, o valor de AdapterInterfaceType quase sempre será interno. Isso ocorre porque o motorista do Storport não dá suporte a ônibus herdados.

Observe que, devido a isso, a maioria dos tipos de interface do adaptador que são usados com o driver de porta SCSI são inválidos para drivers Storport. Em particular, o Storport não dá suporte a:

  • Isa
  • Eisa
  • MicroChannel
  • TurboChannel

Além disso, ao contrário do caso da porta SCSI, um driver de miniporto virtual que funciona com o driver Storport não é necessário para fornecer valores para os seguintes membros:

  • VendorIdLength
  • Vendorid
  • DeviceIdLength
  • DeviceId

HwInitialize

Um ponteiro para a rotina HwStorInitialize do driver de miniporto virtual, que é um ponto de entrada necessário para todos os drivers de miniportos virtuais.

HwStartIo

Um ponteiro para a rotina HwStorStartIo do driver de miniporto virtual, que é um ponto de entrada necessário para todos os drivers de miniportos virtuais.

HwInterrupt

Não usado. Os drivers de miniporta virtual não processam interrupções.

HwFindAdapter

Um ponteiro para a rotina VirtualHwStorFindAdapter do driver de miniporto virtual, que é um ponto de entrada necessário para todos os drivers de miniportos virtuais.

HwResetBus

Um ponteiro para a rotina HwStorResetBus do driver de miniporto virtual, que é um ponto de entrada necessário para todos os drivers de miniporte virtuais.

HwDmaStarted

Não usado. Os drivers de miniporta virtual não executam DMA.

HwAdapterState

O driver storport não dá suporte a drivers herdados. Portanto, esse membro deve ser NULL.

DeviceExtensionSize

Especifica o tamanho, em bytes, exigido pelo driver de miniporto virtual para sua extensão de dispositivo não paginado por adaptador. Um driver de miniporta virtual usa sua extensão de dispositivo como armazenamento para informações do adaptador determinadas pelo driver. O driver de porta específico do sistema operacional inicializa cada extensão de dispositivo alocada com zeros e passa um ponteiro para a extensão de dispositivo específica do adaptador na maioria das chamadas para o driver de miniporto virtual. O tamanho especificado não inclui nenhum armazenamento de miniporto virtual solicitado por unidade lógica.

SpecificLuExtensionSize

Especifica o tamanho, em bytes, exigido pelo driver de miniporto virtual para seu armazenamento não paginado por unidade lógica, se houver. Um driver de miniporta virtual pode usar suas extensões lu (unidade lógica) como armazenamento para informações lu determinadas pelo driver sobre periféricos no barramento virtual. O driver de porta específico do sistema operacional inicializa cada extensão LU alocada com zeros. Deixe esse membro definido como zero se o driver de miniporto virtual não mantiver informações por LU para as quais ele requer armazenamento.

SrbExtensionSize

Especifica o tamanho, em bytes, exigido pelo driver de miniporto virtual para o armazenamento não paginado por solicitação, se houver. Como os drivers de miniportos virtuais que funcionam com o driver Storport devem dar suporte a listas de dispersão/coleta e as listas de dispersão/coleta por SRB geralmente são alocadas na extensão SRB, esse membro raramente é zero.

NumberOfAccessRanges

Não usado. Os drivers de miniporta virtual não dão suporte a hardware.

Reserved

Reservado para uso do sistema.

MapBuffers

Nome Descrição
STOR_MAP_NO_BUFFERS Mapeia apenas o buffer para SRB_FUNCTION_IO_CONTROL e SRB_FUNCTION_WMI.
STOR_MAP_ALL_BUFFERS Obsoleto, mesmo comportamento que STOR_MAP_NON_READ_WRITE_BUFFERS.
STOR_MAP_NON_READ_WRITE_BUFFERS Mapeia o buffer para solicitações de E/S, exceto LEITURA e GRAVAÇÃO.
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE Mapeia o buffer para todas as solicitações de E/S, incluindo READ e WRITE. Normalmente, os drivers de miniporte usarão essa configuração.

NeedPhysicalAddresses

Não usado. Os drivers de miniporta virtual não dão suporte a hardware.

TaggedQueuing

Deve ser definido como TRUE. Um valor true indica que o driver de miniporto virtual dá suporte à fila marcada.

AutoRequestSense

Deve ser definido como TRUE. Um valor true indica que o HBA pode executar uma operação de sensor de solicitação sem exigir uma solicitação explícita para fazê-lo.

MultipleRequestPerLu

Deve ser definido como TRUE. Um valor true indica que o driver de miniporto virtual pode enfileirar várias solicitações por LU (unidade lógica).

ReceiveEvent

Esse valor não é mais usado e pode ser definido como TRUE ou FALSE.

VendorIdLength

O comprimento, em bytes, do identificador do fornecedor.

VendorId

O identificador do fornecedor.

ReservedUshort

Reservado.

PortVersionFlags

Um bitmap de sinalizadores que indicam os recursos aos quais o driver de porta dá suporte. Atualmente, o único sinalizador disponível é SP_VER_TRACE_SUPPORT, o que indica que o driver de porta dá suporte ao rastreamento.

DeviceIdLength

O comprimento, em bytes, do identificador do dispositivo.

DeviceId

O identificador do dispositivo.

HwAdapterControl

Um ponteiro para a rotina HwStorAdapterControl do driver de miniporto virtual.

HwBuildIo

Este membro não é usado.

HwFreeAdapterResources

Um ponteiro para a rotina HwStorFreeAdapterResources do driver de miniporto virtual, que é um ponto de entrada necessário para todos os drivers de miniporte virtuais.

HwProcessServiceRequest

Um ponteiro para a rotina HwStorProcessServiceRequest do driver de miniporto virtual.

HwCompleteServiceIrp

Um ponteiro para a rotina HwStorCompleteServiceIrp do driver de miniport virtual.

HwInitializeTracing

Um ponteiro para a rotina HwStorInitializeTracing do driver de miniporto virtual.

HwCleanupTracing

Um ponteiro para a rotina HwStorCleanupTracing do driver de miniport virtual.

Comentários

Se um driver de miniporto virtual for executado somente em Windows 8 ou posterior, o driver deverá usar a estrutura HW_INITIALIZATION_DATA em vez de VIRTUAL_HW_INITIALIZATION_DATA.

Requisitos

Requisito Valor
Cabeçalho storport.h (inclua Storport.h)

Confira também

HwStorAdapterControl

HwStorCleanupTracing

HwStorCompleteServiceIrp

HwStorFreeAdapterResources

HwStorInitialize

HwStorInitializeTracing

HwStorProcessServiceRequest

HwStorResetBus

HwStorStartIo

VirtualHwStorFindAdapter