|
什么决定了当驱动程序被加载(微软官方-英文)
楼主不妨看下,下面是必应翻译
什么决定了当驱动程序被加载
在之前探索何时以及如何在系统启动过程中,文件系统驱动程序被加载有必要了解驱动程序启动类型和组的加载顺序。
驱动程序启动类型
内核模式驱动程序的启动类型指定是否有期间或之后系统启动时要加载的驱动程序。有五种可能的启动类型:
SERVICE_BOOT_START (0X00000000)
指示由操作系统 (OS) 加载程序启动的驱动程序。文件系统筛选器驱动程序通常使用这种启动类型或 SERVICE_DEMAND_START。微软 Windows XP 及以后的系统,过滤器必须为了利用新的文件系统筛选器加载顺序组使用此启动类型。
SERVICE_SYSTEM_START (0X00000001)
指示驱动程序在操作系统初始化过程中启动。这种启动类型使用文件系统识别器。除了通常根据"SERVICE_DISABLED"文件系统 (包括网络文件系统组件) 下面列出的文件系统使用这种启动类型或SERVICE_DEMAND_START。这种启动类型也由设备驱动程序用于列举在系统初始化期间,但不需要加载系统的即插即用设备。
SERVICE_AUTO_START (0X00000002)
指示在系统启动过程中启动由服务控制管理器的驱动程序。很少使用。
SERVICE_DEMAND_START (0X00000003)
指示启动需求,即插即用管理器 (用于设备驱动程序) 或由服务控制管理器 (用于文件系统和文件系统筛选器驱动程序) 的驱动程序。
SERVICE_DISABLED (0X00000004)
指示不开始由操作系统加载程序,服务控制管理器或即插即用管理器的驱动程序。文件系统识别器 (除非他们的引导文件系统) 加载的文件系统使用的或 (如 EFS) 由另一个文件系统。这种文件系统包括CDFS、 EFS、 步骤、 NTFS,UDF。也用来暂时禁用驱动程序在调试过程中。
指定的启动类型
驱动程序编写者时可以指定启动类型的驱动程序安装在下列任一方法:
通过指定所需的起始的服务安装部分的 StartType 条目类型AddService 指令驱动程序 INF 文件中提到。ServiceInstallSection 中将介绍此方法。
通过传递所需的启动类型为 dwStartType 参数时从用户模式安装程序调用 CreateService 或 ChangeServiceConfig。此方法是所述参考条目为 CreateService 和 ChangeServiceConfig MicrosoftWindows SDK 文档中。
驱动程序加载顺序组
在 SERVICE_BOOT_START 和 SERVICE_SYSTEM_START 启动类型,由每个驱动程序的加载顺序组指定已加载驱动程序的相对顺序。
其启动类型是 SERVICE_BOOT_START 被称为启动 (或引导启动) 驱动程序的驱动程序。在 Microsoft Windows 2000 和早期的系统,是引导驱动程序的大多数过滤器属于"筛选器"组。在 MicrosoftWindows XP 和以后的系统,是引导驱动程序通常属于一个新的FSFilter 的滤波器组的加载顺序。这些加载顺序组为文件系统筛选器驱动程序在加载顺序组中详细介绍。
驱动程序的启动类型是 SERVICE_SYSTEM_START 也是加载顺序加载顺序组属于哪的。然而,所有引导驱动程序加载后,则加载直到没有系统启动驱动程序。
请注意加载顺序组忽略其启动类型是 SERVICE_AUTO_START、SERVICE_DEMAND_START 或 SERVICE_DISABLED 的驱动程序。
一个完整的命令的加载顺序组列表可以发现在 ServiceGroupOrder子项的以下注册表项下:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
相同负荷组排序用于 SERVICE_BOOT_START 和SERVICE_SYSTEM_START 的驱动程序。然而,所有的SERVICE_BOOT_START 驱动程序装入和启动之前任何SERVICE_SYSTEM_START 驱动程序被加载。
指定加载顺序组
驱动程序编写者时可以指定加载顺序组的驱动程序安装在下列任一方法:
通过指定所需的负载的服务安装部分的 LoadOrderGroup 条目的顺序组 AddService 指令驱动程序 INF 文件中提到。ServiceInstallSection 中将介绍此方法。
通过传递所需的启动类型为 lpLoadOrderGroup 参数时从用户模式安装程序调用 CreateService 或 ChangeServiceConfig。此方法是所述参考条目为 CreateService 和 ChangeServiceConfigMicrosoft Windows SDK 文档中。
有关驱动程序的更多常规信息加载顺序和组的加载顺序,请参阅指定驱动程序的加载顺序。
|
|