2010-08-23 43 views
10

Lo que sé es¿Qué significa "\. ", " ?? ", "\? ", "\"?

\\.\ 

Se utiliza cuando abrimos enlace simbólico de un dispositivo en modo de usuario

\??\ 

Se utiliza cuando abrimos un dispositivo en modo de núcleo

\\?\ 

nombre de archivo largo

\\  

ruta UNC.

Pero quiero saber más detalles.
¿Podría explicar con mayor seguridad estos prefijos?

Respuesta

12

http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#paths

Al parecer, \?? es una forma abreviada de acuerdo con \Global??this article:

En la convención de nomenclatura NT, \ global ?? también se puede llamar \ ?? acortar el acceso .

+0

_That_ solo es cierto para las últimas versiones de Windows (MSDN principalmente hace referencia a las últimas versiones de todos modos). '\ ??' ha sido un enlace simbólico a '\ DosDevices' en el pasado y la forma en que se trató dependía en gran medida de si los servicios de la terminal estaban disponibles o no. Con XP, los servicios de terminal siempre estuvieron a bordo, incluso en los consumidores de Windows, así que fue cuando cambió un poco. – 0xC0000022L

+0

@ 0xC0000022L, en realidad no es cierto que se trata simplemente de una forma abreviada de "\ Global?", De lo contrario, los dispositivos DOS de inicio de sesión local no funcionarían. "\ ??" es el directorio virtual "DosDevices" del Object Manager. Primero, el Administrador de objetos comprueba los dispositivos locales definidos en "\ Sesiones \ 0 \ DosDevices \\ [Logon_AuthenticationId]" antes de marcar "\ Global ??". También hay un enlace simbólico "Global" en el directorio local para garantizar la creación o el acceso a un dispositivo global, p. "\\? \ Global \ Z: \ Path". Hoy en día, la entrada clásica "\ DosDevices" es un enlace simbólico a "\ ??". – eryksun

+0

@eryksun: Para empezar, calificaba la afirmación en la respuesta ('\\ GLOBAL ??' ni siquiera existía en versiones anteriores de Windows). Sin embargo, la forma en que el Administrador de objetos comprueba cosas es transparente para el usuario. Entonces, aunque no hice la afirmación sobre la que estaba argumentando que estaba equivocado, sostengo que para todos los propósitos prácticos del programador en modo usuario la declaración es lo suficientemente detallada y tan cierta como es posible sin abrir una lata de gusanos. – 0xC0000022L