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


функция обратного вызова IDE_HW_BUILDIO (irb.h)

Подпрограмма драйвера минипорта IdeHwBuildIo вызывается один раз для каждого входящего запроса ввода-вывода.

Примечание Модели драйвера портов ATA и драйвера минипорта ATA могут быть изменены или недоступны в будущем. Вместо этого рекомендуется использовать модели драйверов Storport и драйверов для мини-портов Storport .
 

Синтаксис

IDE_HW_BUILDIO IdeHwBuildio;

BOOLEAN IdeHwBuildio(
  [in] PVOID ChannelExtension,
  [in] PIDE_REQUEST_BLOCK Irb
)
{...}

Параметры

[in] ChannelExtension

Указатель на расширение канала драйвера мини-порта.

[in] Irb

Указатель на структуру типа IDE_REQUEST_BLOCK , которая определяет блок запросов ввода-вывода интегрированной электроники устройств (IDE) для обработки.

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

IdeHwBuildIo возвращает значение TRUE , чтобы подтвердить получение структуры IDE_REQUEST_BLOCK . Драйвер порта игнорирует возвращаемое значение FALSE.

Комментарии

Драйверы минипорта предоставляют подпрограмму AtaHwBuildlo , которая выполняет несинхронизированную обработку ввода-вывода с включенными прерываниями. После того как IdeHwBuildIo завершит всю несинхронизированную обработку запроса, он возвращается в драйвер порта, а драйвер порта передает запрос в подпрограмму IdeHwStartIo драйвера miniport, которая выполняет задачи, требующие синхронизации.

Драйвер мини-порта должен соблюдать определенные ограничения при выполнении подпрограммы IdeHwBuildIo . Драйвер мини-порта вызывает IdeHwBuildIo без каких-либо блокировок. В частности, драйвер мини-порта не должен касаться общих данных в расширении канала и не может вызывать какие-либо подпрограммы, экспортированные драйвером порта ATA.

Если драйвер miniport должен завершить запрос во время выполнения подпрограммы IdeHwBuildIo , он должен назначить соответствующее значение состояния завершения члену IrbStatusструктуры IDE_REQUEST_BLOCK , на которую указывает параметр Irb . Драйвер мини-порта не должен присваивать IrbStatus значение IRB_STATUS_PENDING.

Драйвер мини-порта может использовать подпрограмму IdeHwBuildIo , чтобы указать драйверу порта, как следует обрабатывать IRB. Например, драйвер мини-порта может запросить, чтобы драйвер порта сопоставил буфер в DataBuffer , задав для члена IrbFlags IRB соответствующее значение. Драйвер мини-порта не должен запрашивать сопоставление буфера, связанного с запросом, если запрос не является каким-то типом передачи данных.

Подпрограмма IdeHwBuildIo по функциональности напоминает подпрограмму HwStorBuildIo storport. Дополнительные сведения о подпрограмме HwStorBuildIo см. в разделе Unsynchronized HwStorBuildIo Routine.

IdeHwBuildIo — это необязательная процедура.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть irb.h (включая Irb.h)

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

IDE_REQUEST_BLOCK

IdeHwStartIo