функция обратного вызова IDE_HW_BUILDIO (irb.h)
Подпрограмма драйвера минипорта IdeHwBuildIo вызывается один раз для каждого входящего запроса ввода-вывода.
Синтаксис
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) |