IDE_HW_BUILDIO回调函数 (irb.h)
对于每个传入的 I/O 请求,IdeHwBuildIo 微型端口驱动程序例程调用一次。
语法
IDE_HW_BUILDIO IdeHwBuildio;
BOOLEAN IdeHwBuildio(
[in] PVOID ChannelExtension,
[in] PIDE_REQUEST_BLOCK Irb
)
{...}
参数
[in] ChannelExtension
指向微型端口驱动程序通道扩展的指针。
[in] Irb
指向 IDE_REQUEST_BLOCK 类型的结构的指针,该结构定义要处理的集成设备电子(IDE)输入/输出请求块(IRB)。
返回值
IdeHwBuildIo 返回 TRUE,以确认收到 IDE_REQUEST_BLOCK 结构。 端口驱动程序忽略 FALSE的返回值。
言论
微型端口驱动程序提供 AtaHwBuildlo 例程,该例程在启用中断的情况下执行非同步 I/O 处理。 IdeHwBuildIo 完成请求的所有未同步处理后,它将返回到端口驱动程序,端口驱动程序将请求传递给微型端口驱动程序的 IdeHwStartIo 例程,该例程执行需要同步的任务。
微型端口驱动程序在执行 IdeHwBuildIo 例程时必须遵守某些限制。 微型端口驱动程序调用 IdeHwBuildIo 而不持有任何锁。 具体而言,微型端口驱动程序不得触摸其通道扩展中的任何共享数据,也不能调用 ATA 端口驱动程序导出的任何例程。
如果微型端口驱动程序在执行 IdeHwBuildIo 例程时必须完成请求,则必须将适当的完成状态值分配给 IDE_REQUEST_BLOCK 结构 Irb 参数指向的 IDE_REQUEST_BLOCK 结构的 IrbStatus 成员。 微型端口驱动程序不得将 IrbStatus 设置为IRB_STATUS_PENDING值。
微型端口驱动程序可以使用 IdeHwBuildIo 例程向端口驱动程序指示 IRB 的处理方式。 例如,微型端口驱动程序可以通过将 IRB IrbFlags 成员设置为适当的值,请求端口驱动程序将缓冲区映射到 DataBuffer 。 微型端口驱动程序不应请求与请求关联的缓冲区进行映射,除非请求是某种类型的数据传输。
IdeHwBuildIo 例程类似于 Storport HwStorBuildIo 功能例程。 有关 HwStorBuildIo 例程的详细信息,请参阅 未同步的 HwStorBuildIo 例程。
IdeHwBuildIo 是可选的例程。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | irb.h (包括 Irb.h) |