Забыл вставить в код первого поста
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath)
{
RtlInitUnicodeString(&QgusDeviceName, L"\\Device\\KeyMouse");
status = IoCreateDevice(DriverObject, 0, &QgusDeviceName,
FILE_DEVICE_UNKNOWN, 0, FALSE, &KeyDeviceObject);
if (status == STATUS_SUCCESS) {
RtlInitUnicodeString(&gusSymbolicLinkName, L"\\??\\KeyMouse\0");
IoCreateSymbolicLink(&gusSymbolicLinkName, &QgusDeviceName);
}
, то есть драйвер загружается во время загрузки виндоус, а infproc выполняется по IOCTL, так что все устройства к этому времени у инициированы.
Забыл поменять DevicePropertyDriverKeyName на DevicePropertyDeviceDescription, но сути проблемы это не меняет. Всё-равно дело до IoGetDeviceProperty пока не доходит