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

Consulte también

SCSI_REQUEST_BLOCK