Co wiem, toCo oznaczają "\. ", " ?? ", "\? ", "\"?
\\.\
Jest on stosowany, gdy otwieramy urządzenia łącza symboliczne w trybie użytkownika
\??\
Jest używany podczas otwierania urządzenia w trybie jądra
\\?\
długa nazwa pliku
\\
Ścieżka UNC.
Ale chcę wiedzieć więcej szczegółów.
Czy możesz dokładniej wyjaśnić te prefiksy.
_To jest prawdziwe tylko w przypadku najnowszych wcieleń systemu Windows (MSDN najczęściej odwołuje się do najnowszych wersji). '\ ??' było dowiązaniem symbolicznym do '\ DosDevices' w przeszłości i sposób jego traktowania zależał w niewielkim stopniu od tego, czy usługi terminalowe były dostępne, czy nie. Dzięki terminalowi XP usługi były zawsze dostępne nawet w konsumenckich Windowsach, więc to się zmieniło. – 0xC0000022L
@ 0xC0000022L, w rzeczywistości nie jest prawdą, że jest to tylko krótka forma "\ Global ??", w przeciwnym razie lokalne urządzenia DOS z sesją logowania nie działałyby. "\ ??" jest wirtualnym katalogiem "DosDevices" menedżera obiektów. Najpierw Menedżer obiektów sprawdza lokalne urządzenia zdefiniowane w "\ Sessions \ 0 \ DosDevices \\ [Logon_AuthenticationId]" przed sprawdzeniem "\ Global ??". Ponadto w katalogu lokalnym znajduje się symboliczne łącze "globalne", które zapewnia tworzenie lub uzyskiwanie dostępu do urządzenia globalnego, np. "\\? \ Global \ Z: \ Path". W dzisiejszych czasach klasyczny wpis "\ DosDevices" jest dowiązaniem symbolicznym do "\ ??". – eryksun
@eryksun: Na początek zakwalifikowałem stwierdzenie w odpowiedzi ('\\ GLOBAL ??' nawet nie istniało w starszych wersjach Windowsa). Sposób, w jaki Menedżer obiektów sprawdza rzeczy, jest jednak przejrzysty dla użytkownika. Tak więc, podczas gdy nie zgłaszałem roszczenia, o które się spierasz, nie miałem racji, utrzymuję, że dla wszystkich praktycznych zastosowań programista trybu użytkownika oświadczenie jest wystarczająco szczegółowe i tak prawdziwe, jak to tylko możliwe bez otwierania całej puszki robaków. – 0xC0000022L