Es handelt sich hier um ein Feature des OLE (Object Linking and Embedding) Systems, eine Abteilung der COM (Component Object Model) Technologie von Windows.
OLE ermöglichte es erstmals anstatt nur Daten verschiedener Formate zwischen Prozessen austauschen zu können (Clipboard, DDE) auch Funktionalität weiterzugeben in Form von Klassen (ComObjects). Dabei ist der
OLE-Server der Bereitsteller der Klasse und die
OLE-Clients die Benutzer.
Will der Client eine Operation an dem Object durchführen, stehen im zusätzlich die Funktionen zur Verfügung, die der Server bereitstellt.
Jeder Klasse wird zur eindeutigen Identifizierung aller "Parteien" eine CLSID zugeordnet. Desktop, Arbeitsplatz, Papierkorb, Netzwerkumgebung, Systemsteuerung sind alles ComObjects und zwar alles sogenannte Shellfolders in diesem Beispiel.
Der OLE-Server ist in diesem Falle also die Shell32.dll, die diese Klassen bereitstellt und vom Klienten, beispielsweise dem Explorer verwendet werden kann.
Shellfolders können virtuell sein (Arbeitsplatz). Heisst also: Es gibt keinen realen Pfad, der zu einem Arbeitsplatz führen kann.
Oder es kann tatsächlich auch ein Pfad existieren. (Eigene Dateien).
Zu der Frage: Ordner können mit der Punktschreibweise mit diesen Shellfolder-Objekten vernüpft werden (Object Linking) und die Funktion der Ordnerauflistung wird sozusagen von einer Funktion der Klasse überschrieben. Der Klient (explorer.exe) benutzt nun diese Funktion beispielsweise beim Arbeitsplatz-Shellfolder und man sieht Festplatten und Wechselmedien anstatt des tatsächlichen Inhalts.
Allerdings muss die Klient-Anwendung auch Shellfunktionen (shell32.dll) zur Datei-/und Ordnerauflistung verwenden, damit die ganze Funktionalität des OLE-Modells auch zum tragen kommt. Benutzt man dagegen die Kommandozeile beispielsweise, bleibt der Ordner ein stinknormaler Ordner.
Der Arbeitsplatz auf dem Desktop ist übrigens nicht einmal ein normaler Ordner und trotzdem verknüpft mit einer Shellfolder-Klasse.
Bei einigen GUID's bewirkt solches Vorgehen rein gar nichts...
Klar. Entweder handelt es sich dann nicht um Shellfolders (eine bestimmte Art von ComObject, die mit Ordnern kompatibel sind) oder es ist ein Shellfolder-Object, bei welchem die Funktion der Ordnerauflistung nicht überschrieben wurde.
Kann man da eine gewisse Analogie zu den erwähnten reservierten Namen der DOS-Geräte ziehen?
Nein. Hat überhaupt nichts miteinander zu tun.
Denn letztendlich ersetzt ja scheinbar NTFS.sys oder eine höhere Schicht den Ordner durch eine Verknüpfung zur Systemsteuerung
Nein. Verantwortlich sind ole*.dll, shell32.dll im Usermode. Benutzt man diese nicht zur Ordnerauflistung, dann ist die Verknüpfung nicht "gültig". Wenn das Objekt nicht benutzt wird, dann handelt es sich nur noch um die nackte Ordnerhierachie, die man dann ausliest.