QueryDosDeviceW-Funktion (fileapi.h)
Ruft Informationen zu MS-DOS-Gerätenamen ab. Die Funktion kann die aktuelle Zuordnung für einen bestimmten MS-DOS-Gerätenamen abrufen. Die Funktion kann auch eine Liste aller vorhandenen MS-DOS-Gerätenamen abrufen.
MS-DOS-Gerätenamen werden als Knoten im Objektnamespace gespeichert. Der Code, der einen MS-DOS-Pfad in einen entsprechenden Pfad konvertiert, verwendet diese Verbindungen, um MS-DOS-Geräte und Laufwerkbuchstaben zuzuordnen. Mit der QueryDosDevice-Funktion kann eine Anwendung die Namen der Verbindungen abfragen, die zum Implementieren des MS-DOS-Gerätenamespaces verwendet werden, sowie den Wert jeder bestimmten Verbindung.
Syntax
DWORD QueryDosDeviceW(
[in, optional] LPCWSTR lpDeviceName,
[out] LPWSTR lpTargetPath,
[in] DWORD ucchMax
);
Parameter
[in, optional] lpDeviceName
Eine MS-DOS-Gerätenamenzeichenfolge, die das Ziel der Abfrage angibt. Der Gerätename darf keinen nachgestellten umgekehrten Schrägstrich aufweisen. Verwenden Sie beispielsweise "C:", nicht "C:\".
Dieser Parameter kann NULL sein. In diesem Fall speichert die QueryDosDevice-Funktion eine Liste aller vorhandenen MS-DOS-Gerätenamen in dem Puffer, auf den von lpTargetPath verwiesen wird.
[out] lpTargetPath
Ein Zeiger auf einen Puffer, der das Ergebnis der Abfrage empfängt. Die Funktion füllt diesen Puffer mit einer oder mehreren NULL-Zeichenfolgen. Auf die endgültige NULL-Zeichenfolge folgt ein zusätzlicher NULL-Wert.
Wenn lpDeviceName nicht NULL ist, ruft die Funktion Informationen zu dem bestimmten MS-DOS-Gerät ab, das von lpDeviceName angegeben wurde. Die erste NULL-Zeichenfolge, die im Puffer gespeichert ist, ist die aktuelle Zuordnung für das Gerät. Die anderen NULL-Zeichenfolgen stellen nicht gelöschte vorherige Zuordnungen für das Gerät dar.
Wenn lpDeviceNameNULL ist, ruft die Funktion eine Liste aller vorhandenen MS-DOS-Gerätenamen ab. Jede im Puffer gespeicherte NULL-Zeichenfolge ist der Name eines vorhandenen MS-DOS-Geräts, z. B. \Device\HarddiskVolume1 oder \Device\Floppy0.
[in] ucchMax
Die maximale Anzahl von TCHARs , die in dem Puffer gespeichert werden können, auf den lpTargetPath verweist.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Anzahl der TCHARs , die in dem Puffer gespeichert sind, auf den lpTargetPath verweist.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Wenn der Puffer zu klein ist, schlägt die Funktion fehl, und der letzte Fehlercode wird ERROR_INSUFFICIENT_BUFFER.
Hinweise
Mit der Funktion DefineDosDevice kann eine Anwendung die Verbindungen erstellen und ändern, die zum Implementieren des MS-DOS-Gerätenamespaces verwendet werden.
Windows Server 2003 und Windows XP: QueryDosDevice durchsucht zuerst den Namespace "Lokales MS-DOS-Gerät" nach dem angegebenen Gerätenamen. Wenn der Gerätename nicht gefunden wird, durchsucht die Funktion dann den globalen MS-DOS-Gerätenamespace.
Wenn alle vorhandenen MS-DOS-Gerätenamen abgefragt werden, hängt die Liste der zurückgegebenen Gerätenamen davon ab, ob sie im Kontext "LocalSystem" ausgeführt wird. Wenn ja, werden nur die Gerätenamen zurückgegeben, die im globalen MS-DOS-Gerätenamespace enthalten sind. Andernfalls wird eine Verkettung der Gerätenamen im globalen und lokalen MS-DOS-Gerätenamespace zurückgegeben. Wenn in beiden Namespaces ein Gerätename vorhanden ist, gibt QueryDosDevice den Eintrag im Namespace Local MS-DOS Device zurück.
Weitere Informationen zu den globalen und lokalen MS-DOS-Gerätenamespaces sowie zu Änderungen an der Barrierefreiheit von MS-DOS-Gerätenamen finden Sie unter Definieren eines MS DOS-Gerätenamens.
Unter Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.
Technologie | Unterstützt |
---|---|
SMB 3.0-Protokoll (Server Message Block) | No |
SMB 3.0 Transparent Failover (TFO) | No |
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) | No |
Dateisystem mit freigegebenen Clustervolumes (CsvFS) | Ja |
Robustes Dateisystem (Resilient File System, ReFS) | Ja |
SMB unterstützt keine Volumeverwaltungsfunktionen.
Beispiele
Ein Beispiel finden Sie unter Abrufen eines Dateinamens aus einem Dateihandle oder Anzeigen von Volumepfaden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | fileapi.h (Einschließen von Windows.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |