WDFDevice配置
2026-06-04
3
0
文件标识
WdfDeviceSetSpecialFileSupport(*WdfDevice, WdfSpecialFilePaging, TRUE); // 分页文件支持
WdfDeviceSetSpecialFileSupport(*WdfDevice, WdfSpecialFileHibernation, TRUE); // 休眠文件支持
WdfDeviceSetSpecialFileSupport(*WdfDevice, WdfSpecialFileDump, TRUE); // 转储文件支持
WdfDeviceSetSpecialFileSupport(*WdfDevice, WdfSpecialFileBoot, TRUE); // 启动文件支持
| 标志常量 | 含义 |
|---|---|
WdfSpecialFilePaging |
支持分页文件(虚拟内存交换文件),允许系统将内存数据分页到该设备 |
WdfSpecialFileHibernation |
支持休眠文件(系统休眠时将内存内容写入磁盘) |
WdfSpecialFileDump |
支持转储文件(系统崩溃时生成内存转储文件用于调试) |
WdfSpecialFileBoot |
支持从该设备启动系统 |
这段代码位于 USB xHCI(USB 3.0)控制器驱动中,设置这些标志后:
- Windows 会允许将分页文件、休眠文件等关键系统文件放在连接到该 USB 控制器的存储设备上
- 这对于使用 USB 外置硬盘作为系统盘或休眠分区的场景至关重要
设备名和GUID
//链接名
status = RtlUnicodeStringPrintf(&uniSymlinkName,L"%ws%d", BASE_SYMBOLIC_LINK_NAME, instanceNumber);
status = WdfDeviceCreateSymbolicLink(*WdfDevice, &uniSymlinkName);
//子设备总线信息
// Set bus information for children devices.
PNP_BUS_INFORMATION pnpBusInformation;
pnpBusInformation.BusTypeGuid = GUID_BUS_TYPE_USB;
pnpBusInformation.LegacyBusType = PNPBus;
pnpBusInformation.BusNumber = 0;
WdfDeviceSetBusInformationForChildren(*WdfDevice, &pnpBusInformation);
// Create the device interface.
//GUID接口
status = WdfDeviceCreateDeviceInterface(*WdfDevice,
(LPGUID)&GUID_CLASS_USB_HOST_CONTROLLER,
NULL);
WDF





