Partilhar via


estrutura SCSI_WMI_REQUEST_BLOCK (minitape.h)

Essa estrutura é uma versão especial de um SCSI_REQUEST_BLOCK para uso com comandos WMI.

Observação o driver de porta SCSI e os modelos de driver de miniporto SCSI podem estar alterados ou indisponíveis no futuro. Em vez disso, recomendamos usar o de driver do Storport e miniporto storport modelos de driver.
 

Sintaxe

typedef struct _SCSI_WMI_REQUEST_BLOCK {
  USHORT Length;
  UCHAR  Function;
  UCHAR  SrbStatus;
  UCHAR  WMISubFunction;
  UCHAR  PathId;
  UCHAR  TargetId;
  UCHAR  Lun;
  UCHAR  Reserved1;
  UCHAR  WMIFlags;
  UCHAR  Reserved2[2];
  ULONG  SrbFlags;
  ULONG  DataTransferLength;
  ULONG  TimeOutValue;
  PVOID  DataBuffer;
  PVOID  DataPath;
  PVOID  Reserved3;
  PVOID  OriginalRequest;
  PVOID  SrbExtension;
  ULONG  Reserved4;
  ULONG  Reserved6;
  UCHAR  Reserved5[16];
} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;

Membros

Length

Especifica o tamanho em bytes dessa estrutura.

Function

SRB_FUNCTION_WMI, que especifica que a solicitação é uma solicitação WMI. Se esse membro não estiver definido como SRB_FUNCTION_WMI, o driver de miniporto deverá falhar na solicitação.

SrbStatus

Retorna o status da solicitação concluída. Esse membro deve ser definido pelo driver de miniporte antes de notificar o driver específico do sistema operacional de que a solicitação foi concluída chamando ScsiPortNotification com RequestComplete. O valor desse membro pode ser qualquer valor listado para SrbStatus em SCSI_REQUEST_BLOCK.

WMISubFunction

Indica a ação WMI a ser executada. Um driver de miniporto chama ScsiPortWmiDispatchFunction com MinorFunction definido para esse valor. O valor da subfunção corresponde ao número de IRP menor do WMI que identifica a operação WMI.

PathId

Indica a porta ou o barramento SCSI para a solicitação. Esse valor é baseado em zero. Se SRB_WMI_FLAGS_ADAPTER_REQUEST estiver definido em WMIFlags, esse membro será reservado.

TargetId

Indica o controlador de destino ou o dispositivo no barramento. Se SRB_WMI_FLAGS_ADAPTER_REQUEST estiver definido em WMIFlags, esse membro será reservado.

Lun

Indica o número de unidade lógica do dispositivo. Se SRB_WMI_FLAGS_ADAPTER_REQUEST estiver definido em WMIFlags, esse membro será reservado.

Reserved1

Reservado para uso do sistema e não disponível para uso por drivers de miniporto.

WMIFlags

Indica que a solicitação WMI é para o adaptador se SRB_WMI_FLAGS_ADAPTER_REQUEST estiver definido e que PathId, TargetIde lun estão reservados. Caso contrário, WMIFlags será NULL, indicando que a solicitação é para o dispositivo especificado por PathId, TargetId e Lun.

Reserved2[2]

Reservado para uso do sistema e não disponível para uso por drivers de miniporto.

SrbFlags

Indica vários parâmetros e opções sobre a solicitação. SrbFlags é somente leitura. Este membro será definido como um ou mais dos seguintes sinalizadores ORed juntos:

SRB_FLAGS_DATA_IN

Indica que os dados serão transferidos do dispositivo para o sistema.

SRB_FLAGS_DATA_OUT

Indica que os dados serão transferidos do sistema para o dispositivo.

SRB_FLAGS_NO_DATA_TRANSFER

Indica que não há transferência de dados com essa solicitação. Se isso estiver definido, os sinalizadores SRB_FLAGS_DATA_OUT, SRB_FLAGS_DATA_IN e SRB_FLAGS_UNSPECIFIED_DIRECTION estarão claros.

SRB_FLAGS_DISABLE_SYNCH_TRANSFER

Indica que o HBA, se possível, deve executar E/S assíncrona para essa solicitação de transferência. Se a E/S síncrona foi negociada anteriormente, o HBA deve renegociar para E/S assíncrona antes de executar a transferência.

SRB_FLAGS_DISABLE_DISCONNECT

Indica que o HBA não deve permitir que o destino se desconecte do barramento SCSI durante o processamento dessa solicitação.

DataTransferLength

Indica o tamanho em bytes do buffer de dados. Um driver de miniporto chama ScsiPortWmiDispatchFunction com BufferSize definido para esse valor. Se ocorrer uma subexecução, o driver de miniporto deverá atualizar esse membro para o número de bytes realmente transferidos.

TimeOutValue

Indica o intervalo em segundos que a solicitação pode ser executada antes que o driver de porta específico do sistema operacional considere o tempo limite. Os drivers de miniporto não são necessários para cronometrar solicitações porque o driver de porta já faz.

DataBuffer

Aponta para o buffer de dados. Um driver de miniporto chama ScsiPortWmiDispatchFunction com Buffer definido para esse valor. Os drivers de miniporto podem usar esse valor como um ponteiro de dados, independentemente do valor de MapBuffers no PORT_CONFIGURATION_INFORMATION para o HBA. Um driver de miniporto não pode transferir dados diretamente para o buffer usando DMA.

DataPath

Especifica o caminho de dados WMI para essa solicitação. Um driver de miniporto chama ScsiPortWmiDispatchFunction com DataPath definido para esse valor.

Reserved3

Reservado para uso do sistema e não disponível para uso por drivers de miniporto.

OriginalRequest

Aponta para o IRP para essa solicitação. Esse membro é irrelevante para miniportar drivers.

SrbExtension

Aponta para a extensão Srb. Um driver de miniporto não deverá usar esse membro se ele definir SrbExtensionSize como zero no HW_INITIALIZATION_DATA. A memória em SrbExtension não é inicializada pelo driver de porta específico do sistema operacional e os dados determinados pelo driver do miniport podem ser acessados diretamente pelo HBA. O endereço físico correspondente pode ser obtido chamando scsiPortGetPhysicalAddress com o ponteiro SrbExtension.

Reserved4

Reservado para uso do sistema e não disponível para uso por drivers de miniporto.

Reserved6

Reservado para uso do sistema e não disponível para uso por drivers de miniporto. Esse membro é válido a partir do Windows Server 2003 com SP1.

Reserved5[16]

Reservado para uso do sistema e não disponível para uso por drivers de miniporto.

Observações

Os drivers de classe de armazenamento e filtro do Windows NT podem enviar SRBs WMI para o driver de porta do sistema. O driver de porta do sistema lidará com determinadas solicitações WMI em nome de drivers de miniporto. Se o driver de porta não puder lidar com uma solicitação WMI, ele encaminha a solicitação para o driver de miniporto.

Um driver de miniporto recebe solicitações WMI do driver de porta somente se o driver de miniporto definido WmiDataProvider na estrutura PORT_CONFIGURATION_INFORMATION. Se o driver de miniporto der suporte a uma solicitação, ele deverá processá-la e concluir a solicitação chamando ScsiPortNotification duas vezes, primeiro com RequestComplete e, em seguida, com NextRequest (ou NextLuRequest).

Para obter informações sobre como dar suporte ao WMI em drivers de miniporto, consulte o de Instrumentação de Gerenciamento doWindows.

Requisitos

Requisito Valor
cabeçalho minitape.h (inclua Storport.h, Srb.h, Storport.h, Minitape.h)

Consulte também

HW_INITIALIZATION_DATA (SCSI)

PORT_CONFIGURATION_INFORMATION (SCSI)

SCSI_REQUEST_BLOCK

ScsiPortNotification

ScsiPortWmiDispatchFunction