Вообщем то создаю девайс как все (ну или почти, мап с тдл) Код (Text): status = IoCreateDevice(DriverObject, 0, &deviceName, FILE_DEVICE_XXX, FILE_DEVICE_SECURE_OPEN, FALSE, &pDeviceObject); if (!NT_SUCCESS(status)) KeBugCheckEx(1337, status, 0, 0, 0); status = IoCreateSymbolicLink(&symLink, &deviceName); if (!NT_SUCCESS(status)) KeBugCheckEx(1338, status, 0, 0, 0); багчека разумеется нет, остальной код в ините выполняется корректно, девайс появляется в дереве /Device, однако CreateFile упорно возвращает 2 (не найден). Это точно не ЮМ хуки, потому что прямой сискол дает аналогичный результат. С PCHunter-ом выгрузил все левые драйвера (которые не от M$) у которых есть коллбэк на IRP_MJ_CREATE, не помогло. Данная проблема лечится перезагрузкой, правда не всегда одной (лол). Проявляется как на win7 так и на win10. Собственно, как такое вообще может быть ? Уже всю голову сломал.
У меня была подобная проблема, но в моем случае, я ошибся в функции обработчике IRP и заворачивал все пакеты. Т.е. я фэйлил все неподдерживаемые IRP_MJ_ и получил именно такой результат, как вы описываете. Но что бы иногда открывалось, а иногда нет, это что-то новое.