Создаю IoDevice, открываю его CreateFile из юзермода и в IRP_MJ_CREATE в Parameters.Create.Options у меня всегда странное 0x20600 (убирая верхние 8 бит, они нормальные) какие бы я флаги не указывал, но если открыть через ZwOpenFile из кернела то флаги передаются нормально. Проверки нтстатуса выкусил из кода для меньшего обьема, создаются нормально.