Функция 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 |