PSCSIWMI_FUNCTION_CONTROL função de retorno de chamada (scsiwmi.h)

A rotina HwScsiWmiFunctionControl de um driver de miniport é chamada para habilitar ou desabilitar a notificação de eventos. Ele também é chamado para habilitar ou desabilitar a coleta de dados para blocos de dados que o driver de miniporto designou como caros de coletar. Essa rotina é opcional.

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

Sintaxe

PSCSIWMI_FUNCTION_CONTROL PscsiwmiFunctionControl;

BOOLEAN PscsiwmiFunctionControl(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] SCSIWMI_ENABLE_DISABLE_CONTROL Function,
  [in] BOOLEAN Enable
)
{...}

Parâmetros

[in] DeviceContext

Aponta para o valor de contexto definido pelo driver do miniporto passado para ScsiPortWmiDispatchFunction.

[in] RequestContext

Aponta para um valor que contém um valor de enumerador do tipo SCSIWMI_REQUEST_CONTEXT que o driver de miniporto passou para ScsiPortWmiDispatchFunction.

[in] GuidIndex

Especifica o bloco por seu índice na lista de GUIDs na estrutura SCSI_WMILIB_CONTEXT que o driver de miniporto passou para ScsiPortWmiDispatchFunction.

[in] Function

Especifica ScsiWmiEventControl para habilitar ou desabilitar um evento ou ScsiWmiDataBlockControl para habilitar ou desabilitar a coleta de dados para um bloco que foi registrado como caro de coletar (ou seja, um bloco para o qual o driver de miniporto WMIREG_FLAG_EXPENSIVE em Sinalizadores da estrutura SCSIWMIGUIDREGINFO usada para registrar o bloco).

[in] Enable

Especifica TRUE para habilitar o evento ou a coleta de dados ou FALSE para desabilitá-lo.

Retornar valor

HwScsiWmiFunctionControl retornará SRB_STATUS_PENDING se a solicitação estiver pendente ou um valor de status SRB diferente de zero se a solicitação tiver sido concluída. O valor de status SRB retornado por essa rotina é o mesmo que foi passado para ScsiPortWmiPostProcess. Embora o tipo de dados de valor retornado seja BOOLEAN, a rotina HwScsiWmiFunctionControl realmente retorna um valor de status SRB.

Comentários

Quando um driver de miniporto recebe um SRB no qual o membro function é definido como SRB_FUNCTION_WMI, ele chama ScsiPortWmiDispatchFunction com um ponteiro para uma estrutura de SCSI_WMILIB_CONTEXT inicializada e MinorFunction definido como Srb-WmiSubFunction>. O driver de porta SCSI chamará a rotina HwScsiWmiFunctionControl de um driver de miniporte se MinorFunction indicar uma solicitação para habilitar ou desabilitar um evento, ou para habilitar ou desabilitar a coleta de um bloco de dados que o driver de miniporto registrou como caro para coletar.

Se um driver de miniporto não implementar uma rotina HwScsiWmiFunctionControl , ele deverá definir WmiFunctionControl como NULL no SCSI_WMILIB_CONTEXT o driver de miniporto passar para ScsiPortWmiDispatchFunction. O driver de porta retorna SRB_STATUS_SUCCESS ao chamador.

É desnecessário que o driver de miniporte marcar se eventos ou coleta de dados já estão habilitados para um bloco porque o driver de porta envia uma única solicitação de habilitação quando o primeiro consumidor de dados habilita o bloco e envia uma única solicitação de desabilitação quando o último consumidor de dados desabilita o bloco. O driver de porta não chamará HwScsiWmiFunctionControl mais de uma vez para habilitar um bloco sem uma chamada intermediária para desabilitá-lo.

Se o SRB for concluído no retorno de chamada HwScsiWmiFunctionControl , o driver de miniporto chamará ScsiPortWmiPostProcess com um SrbStatus apropriado. Se o driver de miniporta aguardar esse SRB, ele deverá chamar ScsiPortWmiPostProcess quando o SRB for concluído e antes de concluir o SRB.

Requisitos

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

Confira também

SCSIWMIGUIDREGINFO

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess