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 |