DefineDosDeviceW-Funktion (fileapi.h)

Definiert oder löscht MS-DOS-Gerätenamen oder definiert sie neu.

Syntax

BOOL DefineDosDeviceW(
  [in]           DWORD   dwFlags,
  [in]           LPCWSTR lpDeviceName,
  [in, optional] LPCWSTR lpTargetPath
);

Parameter

[in] dwFlags

Die steuerbaren Aspekte der DefineDosDevice-Funktion . Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.

Wert Bedeutung
DDD_EXACT_MATCH_ON_REMOVE
0x00000004
Wenn dieser Wert zusammen mit DDD_REMOVE_DEFINITION angegeben wird, verwendet die Funktion eine genaue Übereinstimmung, um zu bestimmen, welche Zuordnung entfernt werden soll. Verwenden Sie diesen Wert, um sicherzustellen, dass Sie nicht definierte Elemente löschen.
DDD_NO_BROADCAST_SYSTEM
0x00000008
Senden Sie die WM_SETTINGCHANGE-Nachricht nicht. Standardmäßig wird diese Nachricht gesendet, um die Shell und anwendungen über die Änderung zu benachrichtigen.
DDD_RAW_TARGET_PATH
0x00000001
Verwendet die lpTargetPath-Zeichenfolge unverändert. Andernfalls wird es von einem MS-DOS-Pfad in einen Pfad konvertiert.
DDD_REMOVE_DEFINITION
0x00000002
Entfernt die angegebene Definition für das angegebene Gerät. Um zu bestimmen, welche Definition entfernt werden soll, führt die Funktion die Liste der Zuordnungen für das Gerät durch und sucht nach einer Übereinstimmung von lpTargetPath mit einem Präfix jeder Zuordnung, die diesem Gerät zugeordnet ist. Die erste Zuordnung, die übereinstimmt, ist die, die entfernt wurde, und die Funktion gibt dann zurück.

Wenn lpTargetPathNULL oder ein Zeiger auf eine NULL-Zeichenfolge ist, entfernt die Funktion die erste Zuordnung, die dem Gerät zugeordnet ist, und füllt die zuletzt gepushte Zuordnung auf. Wenn nichts mehr eingeblendet werden kann, wird der Gerätename entfernt.

Wenn dieser Wert nicht angegeben wird, wird die Zeichenfolge, auf die der parameter lpTargetPath verweist, zur neuen Zuordnung für dieses Gerät.

[in] lpDeviceName

Ein Zeiger auf eine MS-DOS-Gerätenamenzeichenfolge, die das Gerät angibt, das die Funktion definiert, neu definiert oder löscht. Die Gerätenamenzeichenfolge darf keinen Doppelpunkt als letztes Zeichen aufweisen, es sei denn, ein Laufwerkbuchstabe wird definiert, neu definiert oder gelöscht. Laufwerk C wäre beispielsweise die Zeichenfolge "C:". In keinem Fall ist ein nachgestellter umgekehrter Schrägstrich (\) zulässig.

[in, optional] lpTargetPath

Ein Zeiger auf eine Pfadzeichenfolge, die dieses Gerät implementiert. Die Zeichenfolge ist eine MS-DOS-Pfadzeichenfolge, es sei denn, das DDD_RAW_TARGET_PATH-Flag wird angegeben. In diesem Fall handelt es sich bei dieser Zeichenfolge um eine Pfadzeichenfolge.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Bemerkungen

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 DefineDosDevice-Funktion kann eine Anwendung die Verbindungen ändern, die zum Implementieren des MS-DOS-Gerätenamespaces verwendet werden.

Verwenden Sie die QueryDosDevice-Funktion , um die aktuelle Zuordnung für einen bestimmten MS-DOS-Gerätenamen abzurufen oder eine Liste aller dem System bekannten MS-DOS-Geräte abzurufen.

Verwenden Sie die SetVolumeMountPoint-Funktion , um eine Laufwerkbuchstabenzuweisung zu definieren, die bootübergreifend und nicht eine Netzwerkfreigabe persistent ist. Wenn dem volume, das eingebunden werden soll, bereits ein Laufwerkbuchstabe zugewiesen ist, verwenden Sie die DeleteVolumeMountPoint-Funktion , um die Zuweisung zu entfernen.

Laufwerkbuchstaben und Gerätenamen, die zur Systemstartzeit definiert wurden, sind vor Neudefinition und Löschen geschützt, es sei denn, der Benutzer ist Administrator.

Ab Windows XP erstellt diese Funktion einen Gerätenamen für einen Aufrufer, der nicht im Kontext "LocalSystem" in seinem eigenen lokalen MS-DOS-Gerätenamespace ausgeführt wird. Wenn der Aufrufer im Kontext "LocalSystem" ausgeführt wird, erstellt die Funktion den Gerätenamen im globalen MS-DOS-Gerätenamespace. Weitere Informationen finden Sie unter Definieren von MS DOS-Gerätenamen und Dateinamen, Pfaden und Namespaces.

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) Nein
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) Nein
Dateisystem mit freigegebenen Clustervolumes (CsvFS) Nein
Robustes Dateisystem (Resilient File System, ReFS) No
 

SMB unterstützt keine Volumeverwaltungsfunktionen. Für CsvFs wird ein neuer Name nicht auf die anderen Knoten im Cluster repliziert.

Beispiele

Ein Beispiel finden Sie unter Bearbeiten von Laufwerkbuchstabenzuweisungen.

Anforderungen

   
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

DeleteVolumeMountPoint

QueryDosDevice

SetVolumeMountPoint

Volumeverwaltungsfunktionen