Compartilhar via


Função ChangerClassSendSrbSynchronous (mcd.h)

A rotina ChangerClassSendSendSrbSynchronous envia de forma síncrona um SRB para um dispositivo especificado.

Sintaxe

NTSTATUS ChangerClassSendSrbSynchronous(
  [in] PDEVICE_OBJECT      DeviceObject,
  [in] PSCSI_REQUEST_BLOCK Srb,
  [in] PVOID               Buffer,
  [in] ULONG               BufferSize,
  [in] BOOLEAN             WriteToDevice
);

Parâmetros

[in] DeviceObject

Ponteiro para o objeto de dispositivo funcional do dispositivo de destino.

[in] Srb

Ponteiro para um SRB (bloco de solicitação SCSI) parcialmente inicializado a ser enviado para o dispositivo de destino.

[in] Buffer

Especifica o endereço do buffer para o qual Srb-DataBuffer> deve apontar. ChangerClassSendSrbSynchronous cria um MDL para esse buffer e o passa para o driver de dispositivo de destino no IRP do SRB.

[in] BufferSize

Especifica o comprimento, em bytes, do buffer.

[in] WriteToDevice

Indica uma operação de gravação quando TRUE e operação de leitura quando FALSE.

Retornar valor

Retorna STATUS_SUCCESS se o SRB for transmitido com êxito ou o código de erro apropriado se o SRB falhar ou não puder ser enviado por algum motivo.

Comentários

Os drivers de miniclasse de alteração podem chamar essa rotina de driver de classe no Microsoft Windows XP e em sistemas operacionais posteriores. Os drivers de miniclasse devem usar essa rotina para enviar um SRB para o driver de porta em vez de chamar a rotina de biblioteca classpnp.sysClassSendSrbSynchronous diretamente. Embora classpnp.sys seja fornecido com o WDK (Kit de Driver do Windows), não é uma API com suporte e os drivers que chamam as rotinas dessa biblioteca diretamente podem não funcionar corretamente em versões futuras.

ChangerClassSendSrbSynchronous conclui a inicialização do SRB parcialmente inicializado, definindo os sinalizadores do SRB com os valores indicados no objeto de dispositivo do destino. ChangerClassSendSrbSynchronous cria o IRP usado para transmitir o SRB para o dispositivo de destino, envia o IRP e manipula a conclusão do IRP.

Se o IRP falhar e os dados de solicitação de sentido indicarem que o IRP deve ser repetido, ChangerClassSendSendSrbSynchronous reenviará o IRP.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho mcd.h (include Mcd.h, Ntddchgr.h)
Biblioteca Mcd.lib

Confira também

SCSI_REQUEST_BLOCK