信息
您所需的主题如下所示。但此主题未包含在此库中。

添加反射器

UMDF 驱动程序的 INF 文件必须将反射器 (WUDFRd.sys) 作为内核模式堆栈中最高层的驱动程序安装。若要添加反射器,UMDF 驱动程序的 INF 文件必须在 DDInstall.Services 节中包含一个 AddService 指令。根据用户模式堆栈的配置的不同,反射器可以是上层筛选器、下层筛选器或设备服务。无论如何,不可以在反射器之上加载内核模式驱动程序。

如果 UMDF 驱动程序是一个功能驱动程序,或者,用户模式堆栈在有多个 UMDF 驱动程序的情况下包含一个功能驱动程序,则 AddService 指令应将反射器分配为设备的关联服务。若要将反射器分配为关联服务,AddService 指令将指定 SPSVCINST_ASSOCSERVICE 标志 (0x00000002)。

如果 UMDF 驱动程序是一个筛选器驱动程序,或者,用户模式堆栈只包含筛选器驱动程序,则 AddService 指令应使反射器成为内核模式堆栈中最顶层的上层筛选器驱动程序。

如果设备不与某个服务相关联(即,设备是原始的可访问设备),则 AddService 指令应使反射器成为最顶层的下层设备筛选器。

AddService 指令应设置 0x000001f8 标志以防止覆盖服务的任何预先存在的配置。有关这些标志的更多信息,请参见 AddService 指令flags 参数。

下面的代码示例演示了 UMDF 驱动程序的 INF 文件可能如何添加反射器。

[Skeleton_Install.Services]
AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall

AddService 指令引用类似于以下代码示例的 add-service-sectionServiceType 项指定 1 或 0x00000001,这表示 INF 安装支持一个或多个设备。StartType 项指定启动驱动程序的时间。ErrorControl 项指定驱动程序提供的错误控制的级别。ServiceBinary 项指定此服务的二进制文件(反射器)的路径。

[WUDFRD_ServiceInstall]
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\WUDFRd.sys

如果未添加反射器,则绝不会加载 UMDF。设备可能会启动,但不会显示主机进程,并且设备将不会正确地操作。

 

 

社区附加资源

显示:
© 2014 Microsoft