PSCSIWMI_SET_DATABLOCK função de retorno de chamada (scsiwmi.h)
Uma rotina de HwScsiWmiSetDataBlock do driver de miniport é chamada para alterar todos os itens de dados em uma única instância de um bloco de dados. Essa rotina é opcional.
Sintaxe
PSCSIWMI_SET_DATABLOCK PscsiwmiSetDatablock;
BOOLEAN PscsiwmiSetDatablock(
[in] PVOID DeviceContext,
[in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
[in] ULONG GuidIndex,
[in] ULONG InstanceIndex,
[in] ULONG BufferSize,
[in] PUCHAR Buffer
)
{...}
Parâmetros
[in] DeviceContext
Aponta para o valor de contexto definido pelo driver do miniport passado para ScsiPortWmiDispatchFunction.
[in] RequestContext
Aponta para a estrutura SCSIWMI_REQUEST_CONTEXT que o driver de miniporto passou para ScsiPortWmiDispatchFunction.
[in] GuidIndex
Especifica o bloco de dados por seu índice na lista de GUIDs na estrutura SCSI_WMILIB_CONTEXT que o driver de miniporto passou para ScsiPortWmiDispatchFunction.
[in] InstanceIndex
Se o bloco especificado por guidIndex tiver várias instâncias, InstanceIndex especificar a instância.
[in] BufferSize
Especifica o tamanho em bytes do buffer em buffer.
[in] Buffer
Aponta para um buffer que contém novos valores para a instância.
Valor de retorno
HwScsiWmiSetDataBlock 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.
Observações
Quando um driver de miniporto recebe um SRB no qual o membro da Função está 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 chama a rotina de HwScsiWmiSetDataBlock do driver de miniporte se MinorFunction indicar uma solicitação para alterar uma instância de um bloco de dados.
Se um driver de miniporto não implementar uma rotina de HwScsiWmiSetDataBlock, ele deverá definir SetWmiDataBlock para NULL no SCSI_WMILIB_CONTEXT o driver de miniporto passa para ScsiPortWmiDispatchFunction. Nesse caso, o driver de porta retorna SRB_STATUS_ERROR ao chamador.
Se o driver de miniporto implementar HwScsiWmiSetDataBlock ele deverá alterar a instância do bloco de dados para os novos valores do buffer.
Se todos os itens no bloco de dados forem somente leitura, o driver de miniporto deverá retornar SRB_STATUS_ERROR. Caso contrário, o driver de miniporto altera os itens que pode e retorna SRB_STATUS_SUCCESS.
O driver de miniporto deve chamar ScsiPortWmiPostProcess com um valor de SrbStatus apropriado quando a solicitação for concluída. Se a solicitação não estiver pendente, ScsiPortWmiPostProcess deverá ser chamado no HwScsiWmiSetDataBlock retorno de chamada. Caso contrário, ScsiPortWmiPostProcess deverá ser chamado quando a solicitação for realmente concluída.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | scsiwmi.h (inclua Scsiwmi.h) |