Bagikan melalui


Pengantar Nama Perangkat MS-DOS

Objek perangkat bernama yang dibuat oleh driver non-WDM biasanya memiliki nama perangkat MS-DOS. Nama perangkat MS-DOS adalah tautan simbolis di manajer objek dengan nama formulir \DosDevices\DosDeviceName.

Contoh perangkat dengan nama perangkat MS-DOS adalah port serial, COM1. Ini memiliki nama perangkat MS-DOS \DosDevices\COM1. Demikian juga, drive C memiliki nama \DosDevices\C:.

Driver WDM biasanya tidak menyediakan nama perangkat MS-DOS untuk perangkat mereka. Sebagai gantinya, driver WDM menggunakan rutinitas IoRegisterDeviceInterface untuk mendaftarkan antarmuka perangkat. Antarmuka perangkat menentukan perangkat berdasarkan kemampuannya, bukan oleh konvensi penamaan tertentu. Untuk informasi selengkapnya, lihat Kelas Antarmuka Perangkat.

Driver diperlukan untuk menyediakan nama perangkat MS-DOS hanya jika perangkat diharuskan memiliki nama perangkat MS-DOS tertentu yang terkenal untuk bekerja dengan program mode pengguna.

Driver menyediakan nama perangkat MS-DOS untuk objek perangkat dengan menggunakan rutinitas IoCreateSymbolicLink untuk membuat tautan simbolis ke perangkat. Misalnya, contoh kode berikut membuat tautan simbolis dari \DosDevices\DosDeviceName ke \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. */
}

Perhatikan bahwa sistem mendukung beberapa versi direktori \DosDevices . Pastikan driver Anda membuat tautan simbolisnya dalam versi yang Anda inginkan. Untuk informasi selengkapnya, lihat Nama Perangkat MS-DOS Lokal dan Global.

Untuk mengakses namespace Layanan DosDevices dari mode pengguna, tentukan \\.\ saat Anda membuka nama file. Anda dapat membuka perangkat yang sesuai dalam mode pengguna dengan memanggil CreateFile().

Misalnya, contoh kode berikut membuka perangkat \\DosDevices\\DosDeviceName dalam mode pengguna.

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

Tautan simbolis juga dapat dibuat dari aplikasi mode pengguna dengan menggunakan rutinitas DefineDosDevice mode pengguna. Untuk informasi selengkapnya, lihat Microsoft Windows SDK.