При попытке открыть файл с дискеты с помощью ZwOpenFile вылезает окно "Диск отсутствует" если дискета не вставлена. Очень хочется избежать этого окна и просто вернуть ошибку, если дискеты нет. Проблема в том, что устройство \Device\FloppyXxx присутствует всегда ибо это устройство самого дисковода, а никак не файловой системы которая на дискете. DEVICE_OBJECT тома появляются только в момент первого обращения к дискете, т.е. пока не попытаешься что-то с дискеты прочитать неясно есть дискета или нет. И дальше, аналогичная проблема в случае когда дискету достали, пока не попытаешься что-то прочитать система думает что дискета есть.
Вот это поможет: IoSetThreadHardErrorMode() Ещё есть такая функция (недокументированная): Код (Text): VOID PsSetThreadHardErrorsAreDisabled ( IN PETHREAD Thread, IN BOOLEAN HardErrorsAreDisabled);