Compartilhar via


Função ScsiPortWmiDispatchFunction (scsiwmi.h)

A rotina ScsiPortWmiDispatchFunction é uma rotina de expedição para drivers de miniport que dão suporte ao WMI.

Nota Os modelos de driver de porta SCSI e driver de miniporto SCSI podem ser alterados ou indisponíveis no futuro. Em vez disso, recomendamos usar os modelos de driver do Storport e do driver de miniporto storport .
 

Sintaxe

BOOLEAN ScsiPortWmiDispatchFunction(
  [in] PSCSI_WMILIB_CONTEXT     WmiLibInfo,
  [in] UCHAR                    MinorFunction,
  [in] PVOID                    DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] PVOID                    DataPath,
  [in] ULONG                    BufferSize,
  [in] PVOID                    Buffer
);

Parâmetros

[in] WmiLibInfo

Ponteiro para uma estrutura SCSI_WMILIB_CONTEXT que contém informações de registro para blocos de dados e blocos de eventos de um driver de miniport e define pontos de entrada para as rotinas de retorno de chamada da biblioteca WMI do driver de miniport.

[in] MinorFunction

Indica a ação WMI a ser executada. O driver de miniporto define MinorFunction como Srb-WmiSubFunction> do SRB de entrada.

[in] DeviceContext

Ponteiro para um valor de contexto definido pelo driver de miniport. O driver de porta passará DeviceContext para a rotina de retorno de chamada HwScsiWmiXxxx do driver de miniport. Esse valor normalmente apontaria para uma estrutura de HW_DEVICE_EXTENSION.

[in] RequestContext

Ponteiro para uma estrutura SCSIWMI_REQUEST_CONTEXT que contém informações de contexto para o SRB do WMI. Se o SRB puder ser pendente, o driver de miniporto deverá alocar essa estrutura da extensão SRB porque o contexto de solicitação deve permanecer válido até que ScsiPortWmiPostProcess retorne com o status final de retorno do SRB e o tamanho do buffer. ScsiPortWmiDispatchFunction passará RequestContext para a rotina de retorno de chamada do driver de miniport que processa essa solicitação.

[in] DataPath

Ponteiro para um GUID que representa o bloco de dados associado à solicitação. O driver de miniporte define DataPath como Srb-DataPath> do SRB de entrada.

[in] BufferSize

Especifica o tamanho em bytes do buffer de dados. O driver de miniporto define BufferSize como Srb-DataTransferLength> do SRB de entrada.

[in] Buffer

Ponteiro para o buffer de dados. O driver de miniporto define Buffer como Srb-DataBuffer> do SRB de entrada.

Retornar valor

ScsiPortWmiDispatchFunction retornaráTRUE se a solicitação estiver pendente ou FALSE se a solicitação tiver sido concluída.

Comentários

Quando um driver de miniporto recebe um SRB no qual o membro function é definido como SRB_FUNCTION_WMI, ele chama ScsiPortWmiDispatchFunction com parâmetros de solicitação, incluindo um ponteiro para uma estrutura inicializada SCSI_WMILIB_CONTEXT. Essa estrutura contém informações sobre os blocos de dados e os blocos de eventos do driver de miniport e define pontos de entrada para as rotinas de retorno de chamada HwScsiWmiXxx do driver de miniport.

ScsiPortWmiDispatchFunction confirma que o SRB é uma solicitação WMI e determina se o bloco especificado pela solicitação é válido para o driver de miniport. Se essas condições forem atendidas, ScsiPortWmiDispatchFunction processará o SRB chamando o ponto de entrada HwScsiWmiXxx apropriado na estrutura de SCSI_WMILIB_CONTEXT do driver de miniport. Se o driver de miniporto não definir um ponto de entrada para uma rotina HwScsiWmiXxxx opcional, o driver de porta manipulará a solicitação.

Em ambos os casos, após o retorno de ScsiPortWmiDispatchFunction , o driver de miniport deve fazer o seguinte para solicitações que não está pendente:

  • Definir DataTransferLength >Srb como o valor retornado por ScsiPortWmiGetReturnSize
  • Defina srb->SrbStatus como o valor retornado por ScsiPortWmiGetReturnStatus
  • Chamar ScsiPortNotification com RequestComplete e novamente com NextRequest

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho scsiwmi.h (inclua Miniport.h, Scsi.h)

Confira também

SCSIWMI_REQUEST_CONTEXT

SCSI_WMILIB_CONTEXT

ScsiPortNotification

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus

ScsiPortWmiPostProcess