função de retorno de chamada PSCSIWMI_SET_DATABLOCK (scsiwmi.h)
A rotina HwScsiWmiSetDataBlock de um 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 miniporto definido pelo driver 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.
Retornar valor
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.
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 chama a rotina 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 HwScsiWmiSetDataBlock , ele deverá definir SetWmiDataBlock como NULL no SCSI_WMILIB_CONTEXT o driver de miniporto passa para ScsiPortWmiDispatchFunction. Nesse caso, o driver de porta retorna SRB_STATUS_ERROR para o 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 miniporte altera os itens que pode e retorna SRB_STATUS_SUCCESS.
O driver de miniporte deve chamar ScsiPortWmiPostProcess com um valor SrbStatus apropriado quando a solicitação for concluída. Se a solicitação não estiver pendente, ScsiPortWmiPostProcess deverá ser chamado no retorno de chamada HwScsiWmiSetDataBlock . Caso contrário, ScsiPortWmiPostProcess deverá ser chamado quando a solicitação for realmente concluída.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | scsiwmi.h (inclua Scsiwmi.h) |