Поделиться через


Функция ChangerClassSendSrbSynchronous (mcd.h)

Подпрограмма ChangerClassSendSrbSynchronous синхронно отправляет SRB на указанное устройство.

Синтаксис

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

Параметры

[in] DeviceObject

Указатель на объект функционального устройства целевого устройства.

[in] Srb

Указатель на частично инициализированный блок запросов SCSI (SRB) для отправки на целевое устройство.

[in] Buffer

Указывает адрес буфера, на который должен указывать Srb-DataBuffer>. ChangerClassSendSrbSynchronous создает MDL для этого буфера и передает его целевому драйверу устройства в SRB IRP.

[in] BufferSize

Указывает длину буфера (в байтах).

[in] WriteToDevice

Указывает операцию записи при значении TRUE и операцию чтения при значении FALSE.

Возвращаемое значение

Возвращает STATUS_SUCCESS, если SRB успешно передан, или соответствующий код ошибки, если SRB не удается отправить по какой-либо причине.

Комментарии

Драйверы мини-класса changer могут вызывать подпрограмму драйвера этого класса в Операционных системах Microsoft Windows XP и более поздних версий. Драйверы miniclass должны использовать эту подпрограмму для отправки SRB драйверу порта вместо вызова подпрограммы библиотекиclasspnp.sysClassSendSrbSynchronous напрямую. Хотя classpnp.sys поставляется вместе с комплектом драйверов Windows (WDK), он не является поддерживаемым API, и драйверы, вызывающие подпрограммы этой библиотеки напрямую, могут работать неправильно в будущих выпусках.

ChangerClassSendSrbSynchronous завершает инициализацию частично инициализированного SRB, устанавливая флаги SRB со значениями, указанными в объекте устройства целевого объекта. ChangerClassSendSrbSynchronous создает IRP, который используется для передачи SRB на целевое устройство, отправляет IRP, а затем обрабатывает завершение IRP.

Если IRP завершается сбоем и данные запроса о смысле указывают на то, что необходимо выполнить повторный запрос, ChangerClassSendSrbSynchronous повторно отправляет IRP.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть mcd.h (включая Mcd.h, Ntddchgr.h)
Библиотека Mcd.lib

См. также раздел

SCSI_REQUEST_BLOCK