IEEE 1394 驱动程序堆栈
下图演示了 IEEE 1394 驱动程序堆栈,其中包含新的 1394 总线驱动程序和 Microsoft 支持的 1394 客户端驱动程序。
连接到 IEEE 1394 总线驱动程序的设备客户端驱动程序位于 IEEE 1394 驱动程序堆栈之上。 总线驱动程序为 IEEE 1394 总线提供与硬件无关的接口。 设备驱动程序通过发送 IEEE 1394 总线驱动程序处理的 IRP 与设备通信。 在 Windows 7 之前,总线驱动程序是端口驱动程序 (1394bus.sys) 和主板主机控制器 (ochi1394.sys) 的主微型端口驱动程序的组合。 在 Windows 7 及更高版本中,旧版端口/微型端口总线驱动程序将替换为 1394ohci.sys,这是一个整体 IEEE 1394 总线驱动程序,使用内核模式驱动程序框架 (KMDF) 实现。 1394ohci.sys总线驱动程序与旧版 1394 总线驱动程序完全向后兼容。 有关新总线驱动程序与旧版 1394 总线驱动程序之间的一些已知行为差异的详细信息,请参阅 Windows 7 中的 IEEE 1394 总线驱动程序。
下图显示了旧版 1394 总线驱动程序与新版 1394 总线驱动程序之间的关系。
若要向连接到总线的设备发出命令,驱动程序会发出 IRP_MJ_DEVICE_CONTROL IRP, IOCTL_1394_CLASS控制代码。 驱动程序将参数打包在 IEEE 1394 I/O 请求块 (IRB) 中,并在 IRP 的 Parameters.Others.Argument1 成员中传递指向它的指针。 IRB 的 FunctionNumber 成员确定操作的类型, u 成员描述操作。 总线驱动程序使用 IOCTL_1394_CLASS IRP 向总线和主控制器提供接口。
IRB 结构包含应用于每个总线请求的参数和特定于请求的参数。 IRB 的 u 成员在数据结构的联合中包含特定于请求的参数,每个请求类型各一个。
在正常操作期间,驱动程序接收普通 I/O 请求 ((如 IRP_MJ_READ) ),将其转换为相应的 IEEE 1394 操作,并通过IOCTL_1394_CLASS将该操作调度到设备。
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈