Sdílet prostřednictvím


Úvod do názvů zařízení MS-DOS

Pojmenovaný objekt zařízení vytvořený ovladačem, který není ovladačem WDM, má obvykle název MS-DOS zařízení. Název MS-DOS zařízení je symbolický odkaz ve správci objektů s názvem formuláře \DosDevices\DosDeviceName.

Příkladem zařízení s názvem MS-DOS zařízení je sériový port COM1. Má název zařízení MS-DOS \DosDevices\COM1. Podobně má jednotka C název \DosDevices\C:.

WDM ovladače obvykle neposkytují MS-DOS názvy zařízení pro svá zařízení. Místo toho ovladače WDM používají rutinu IoRegisterDeviceInterface k registraci rozhraní zařízení. Rozhraní zařízení určuje zařízení podle jejich schopností, nikoli konkrétní konvence vytváření názvů. Další informace naleznete v tématu Třídy rozhraní zařízení.

Ovladače musí zadat název zařízení MS-DOS pouze pokud zařízení musí mít konkrétní dobře známý název MS-DOS, aby fungovalo s programy v uživatelském režimu.

Ovladač poskytuje MS-DOS název zařízení pro objekt zařízení pomocí rutiny IoCreateSymbolicLink k vytvoření symbolického odkazu na zařízení. Například následující příklad kódu vytvoří symbolický odkaz z \DosDevices\DosDeviceName do \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. */
}

Všimněte si, že systém podporuje více verzí adresáře \DosDevices . Ujistěte se, že ovladač vytvoří symbolické odkazy ve verzi, kterou máte v úmyslu. Další informace naleznete v tématu Místní a globální názvy zařízení MS-DOS.

Pokud chcete získat přístup k oboru názvů DosDevices z uživatelského režimu, zadejte \\.\ při otevření názvu souboru. Odpovídající zařízení můžete otevřít v uživatelském režimu voláním CreateFile().

Například následující příklad kódu otevře zařízení \\DosDevices\\DosDeviceName v uživatelském režimu.

file = CreateFileW(L"\\\\.\\DosDeviceName",
  GENERIC READ | GENERIC WRITE,
    0,
    NULL,
    OPEN_EXISTING,
    0,
    NULL);

Symbolický odkaz lze také vytvořit z aplikace v uživatelském režimu pomocí rutiny DefineDosDevice v uživatelském režimu. Další informace naleznete v sadě Microsoft Windows SDK.