Compartilhar via


Função ScsiPortWmiDispatchFunction (scsiwmi.h)

A rotina de ScsiPortWmiDispatchFunction é uma rotina de expedição para drivers de miniport que dão suporte ao 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

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 de SCSI_WMILIB_CONTEXT que contém informações de registro para blocos de dados e blocos de eventos do 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 para 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 HwScsiWmiXxx do driver de miniporto. Esse valor normalmente apontaria para uma estrutura 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 de retorno final do SRB e o tamanho do buffer. ScsiPortWmiDispatchFunction passará RequestContext para a rotina de retorno de chamada do driver de miniporto que processa essa solicitação.

[in] DataPath

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

[in] BufferSize

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

[in] Buffer

Ponteiro para o buffer de dados. O driver de miniporto define buffer para databuffer de>Srb a partir do SRB de entrada.

Valor de retorno

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

Observações

Quando um driver de miniporto recebe um SRB no qual o membro da Função é definido como SRB_FUNCTION_WMI, ele chama ScsiPortWmiDispatchFunction com parâmetros de solicitação, incluindo um ponteiro para uma estrutura de SCSI_WMILIB_CONTEXT inicializada. Essa estrutura contém informações sobre blocos de dados e blocos de eventos do driver de miniporto 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 miniporto. Se essas condições forem atendidas, ScsiPortWmiDispatchFunction processará o SRB chamando o HwScsiWmiXxxx ponto de entrada apropriado na estrutura de SCSI_WMILIB_CONTEXT do driver de miniporto. Se o driver de miniporto não definir um ponto de entrada para uma rotina de HwScsiWmiXxx opcional, o driver de porta manipulará a solicitação.

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

  • Defina DataTransferLength>para o valor retornado por ScsiPortWmiGetReturnSize
  • Defina SrbStatus>SrbStatus para o valor retornado por ScsiPortWmiGetReturnStatus
  • Chame ScsiPortNotification com RequestComplete e novamente com NextRequest

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho scsiwmi.h (inclua Miniport.h, Scsi.h)

Consulte também

SCSIWMI_REQUEST_CONTEXT

SCSI_WMILIB_CONTEXT

ScsiPortNotification

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus

ScsiPortWmiPostProcess