Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Именованный объект устройства, созданный драйвером, не использующим WDM, обычно имеет имя устройства MS-DOS. Имя устройства MS-DOS — символьная ссылка в диспетчере объектов с именем формы \DosDevices\DosDeviceName.
Пример устройства с MS-DOS именем устройства — последовательный порт COM1. У него имя устройства MS-DOS \DosDevices\COM1. Аналогичным образом диск C имеет имя \DosDevices\C:.
Драйверы WDM обычно не предоставляют MS-DOS названия для своих устройств. Вместо этого драйверы WDM используют подпрограмму IoRegisterDeviceInterface для регистрации интерфейса устройства. Интерфейс устройства определяет устройства по их возможностям, а не по определенному соглашению об именовании. Дополнительные сведения см. в разделе "Классы интерфейса устройства".
Драйверы необходимы для предоставления имени устройства MS-DOS только в том случае, если для работы с программами пользовательского режима требуется определенное известное имя устройства MS-DOS.
Драйвер предоставляет имя устройства MS-DOS для объекта устройства, используя рутин IoCreateSymbolicLink для создания символьной ссылки на устройство. Например, в следующем примере кода создается символьная ссылка из \DosDevices\DosDeviceName на \Device\DeviceName.
UNICODE_STRING DeviceName;
UNICODE_STRING DosDeviceName;
NTSTATUS status;
RtlInitUnicodeString(&DeviceName, L"\\Device\\DeviceName");
RtlInitUnicodeString(&DosDeviceName, L"\\DosDevices\\DosDeviceName");
status = IoCreateSymbolicLink(&DosDeviceName, &DeviceName);
if (!NT_SUCCESS(status)) {
/* Symbolic link creation failed. Handle error appropriately. */
}
Обратите внимание, что система поддерживает несколько версий каталога \DosDevices . Убедитесь, что драйвер создает символьные ссылки в выбранной версии. Дополнительные сведения см. в разделе "Локальные и глобальные MS-DOS имена устройств".
Чтобы получить доступ к пространству имен DosDevices из пользовательского режима, укажите \\.\ при открытии имени файла. Можно открыть соответствующее устройство в пользовательском режиме, вызвав CreateFile().
Например, следующий пример кода открывает устройство \\DosDevices\\DosDeviceName в пользовательском режиме.
file = CreateFileW(L"\\\\.\\DosDeviceName",
GENERIC READ | GENERIC WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
Символьная ссылка также может быть создана из приложения в пользовательском режиме с помощью подпрограммы DefineDosDevice . Дополнительные сведения см. в пакете SDK для Microsoft Windows.