Función ChangerClassSendSrbSynchronous (mcd.h)
La rutina ChangerClassSendSrbSynchronous envía sincrónicamente una SRB a un dispositivo especificado.
Sintaxis
NTSTATUS ChangerClassSendSrbSynchronous(
[in] PDEVICE_OBJECT DeviceObject,
[in] PSCSI_REQUEST_BLOCK Srb,
[in] PVOID Buffer,
[in] ULONG BufferSize,
[in] BOOLEAN WriteToDevice
);
Parámetros
[in] DeviceObject
Puntero al objeto de dispositivo funcional del dispositivo de destino.
[in] Srb
Puntero a un bloque de solicitud SCSI (SRB) inicializado parcialmente que se enviará al dispositivo de destino.
[in] Buffer
Especifica la dirección del búfer al que debe apuntar Srb-DataBuffer>. ChangerClassSendSrbSynchronous crea una MDL para este búfer y la pasa al controlador de dispositivo de destino en el IRP de SRB.
[in] BufferSize
Especifica la longitud, en bytes, del búfer.
[in] WriteToDevice
Indica una operación de escritura cuando es TRUE y la operación de lectura cuando es FALSE.
Valor devuelto
Devuelve STATUS_SUCCESS si la SRB se transmite correctamente o el código de error adecuado si se produce un error en la SRB o no se puede enviar por algún motivo.
Comentarios
Los controladores de miniclase de Changer pueden llamar a esta rutina de controlador de clase en Microsoft Windows XP y sistemas operativos posteriores. Los controladores de miniclase deben usar esta rutina para enviar un SRB al controlador de puerto en lugar de llamar directamente a la rutina de biblioteca classpnp.sysClassSendSrbSynchronous . Aunque classpnp.sys se incluye con el Kit de controladores de Windows (WDK), no es una API compatible y los controladores que llaman directamente a las rutinas de esta biblioteca podrían no funcionar correctamente en versiones futuras.
ChangerClassSendSrbSynchronous finaliza la inicialización de la SRB inicializada parcialmente, estableciendo las marcas de SRB con los valores indicados en el objeto de dispositivo del destino. ChangerClassSendSrbSynchronous crea el IRP que se usa para transmitir la SRB al dispositivo de destino, envía el IRP y, a continuación, controla la finalización del IRP.
Si se produce un error en el IRP y los datos de la solicitud de detección indican que se debe reintentar el IRP, ChangerClassSendSrbSynchronous volverá a enviar el IRP.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | mcd.h (incluye Mcd.h, Ntddchgr.h) |
Library | Mcd.lib |