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

Siehe auch

DefineDosDevice

Volumeverwaltungsfunktionen