Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett namngivet enhetsobjekt som skapas av en icke-WDM-drivrutin har vanligtvis ett MS-DOS enhetsnamn. Ett MS-DOS enhetsnamn är en symbolisk länk i objekthanteraren med ett namn av formen \DosDevices\DosDeviceName.
Ett exempel på en enhet med ett MS-DOS enhetsnamn är serieporten COM1. Den har MS-DOS enhetsnamnet \DosDevices\COM1. På samma sätt har C-enheten namnet \DosDevices\C:.
WDM-drivrutiner anger vanligtvis inte MS-DOS enhetsnamn för sina enheter. I stället använder WDM-drivrutiner IoRegisterDeviceInterface-rutinen för att registrera ett enhetsgränssnitt. Enhetsgränssnittet anger enheter efter deras funktioner i stället för en viss namngivningskonvention. Mer information finns i Enhetsgränssnittsklasser.
För drivrutiner är det nödvändigt att ange ett MS-DOS enhetsnamn endast om enheten måste ha ett specifikt välkänt MS-DOS enhetsnamn för att fungera med användarlägesprogram.
En drivrutin tillhandahåller ett MS-DOS enhetsnamn för ett enhetsobjekt med hjälp av rutinen IoCreateSymbolicLink för att skapa en symbolisk länk till enheten. I följande kodexempel skapas till exempel en symbolisk länk från \DosDevices\DosDeviceName till \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. */
}
Observera att systemet stöder flera versioner av katalogen \DosDevices . Se till att drivrutinen skapar sina symboliska länkar i den version som du vill använda. Mer information finns i Lokala och globala MS-DOS enhetsnamn.
Om du vill komma åt DosDevices-namnområdet från användarläget anger du \\.\ när du öppnar ett filnamn. Du kan öppna en motsvarande enhet i användarläge genom att anropa CreateFile().
I följande kodexempel öppnas till exempel enheten \\DosDevices\\DosDeviceName i användarläge.
file = CreateFileW(L"\\\\.\\DosDeviceName",
GENERIC READ | GENERIC WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
En symbolisk länk kan också skapas från ett användarlägesprogram med hjälp av användarlägesrutinen DefineDosDevice . Mer information finns i Microsoft Windows SDK.