Spørgsmål:
\ ?? \ C: \ Spørgsmål i stier
user4089
2014-03-06 02:16:28 UTC
view on stackexchange narkive permalink

Jeg støder ofte på stier svarende til \ ?? \ C: \ Windows når jeg kigger i hukommelsen. Jeg har ikke været i stand til at forstå, hvorfor det dobbelte '? ' føjes til nogle stier. Min google-fu svigter mig med evnen til at finde en grund til det dobbelte '? '. Enhver hjælp vil blive værdsat.

To svar:
woffles2.0
2017-04-18 14:22:47 UTC
view on stackexchange narkive permalink

Jeg har ledt efter et svar på dette spørgsmål i et stykke tid, og jeg ved, at dette spørgsmål er år gammelt, men hvis det er tilfældet, kommer en anden over dette spørgsmål, vil jeg lade mit svar være her.

Ovenstående svar henviser til ikke-kanoniserede enhedsstier, hvor der som du spørger om \ ?? \ ikke \\? \ der muligvis kun være en lille forskel i spørgsmålet, men svaret er helt anderledes.

\ ?? er et "falsk" præfiks, der refererer til Dos-enheder pr. bruger, så her er en billede, der forhåbentlig hjælper dig med at forstå, hvad processen er: enter image description here

Nogle definitioner, der kan hjælpe dig med at forstå:

  • \ Enhed - Standardplacering for kernedriver Enhedsobjekter
  • \ GLOBAL ?? - Systemplacering for symbolske links til enheder inklusive drevbogstaver
  • \ BaseNamedObjects - Systemplacering for navngivne ressourcer
  • \ Sessions \ X - Katalog til login-session X
  • \ Session \ 0 \ DosDevices -Directory til "Dos Devices" for hver bruger, der er logget ind.
Dette skal accepteres som det rigtige svar
Jason Geffner
2014-03-06 02:30:07 UTC
view on stackexchange narkive permalink

Fra Windows Internals, del 1 (6. udgave) -

Alle objekthåndteringsfunktioner relateret til namespace management er opmærksomme på de instanserede mapper og deltager i giver illusionen om, at alle sessioner bruger det samme navneområde. Windows-undersystemets DLL-præfiksnavne, der sendes af Windows-applikationer, der refererer til objekter i \ DosDevices med \ ?? (for eksempel C: \ Windows bliver \ ?? \ C: \ Windows). Når objektadministratoren ser specialen ?? præfikset afhænger de trin, det tager, af versionen af ​​Windows, men det afhænger altid af et felt med navnet DeviceMap i det eksekverende procesobjekt (EPROCESS, som er beskrevet yderligere i kapitel 5), der peger på en data struktur, der deles af andre processer i samme session.

DosDevicesDirectory -feltet i DeviceMap -strukturpunkterne i objekthåndteringsmappen, der repræsenterer processen 'lokal \ DosDevices. Når objektadministratoren ser en henvisning til \ ??, lokaliserer den procesens lokale \ DosDevices ved hjælp af feltet DosDevicesDirectory i DeviceMap . Hvis objektadministratoren ikke finder objektet i den pågældende mappe, kontrollerer det DeviceMap -feltet i katalogobjektet. Hvis det er gyldigt, ser det efter objektet i biblioteket, der er peget på i feltet GlobalDosDevicesDirectory i strukturen DeviceMap , som altid er \ Global ??.

-1 dette svarer ikke på spørgsmålet og bør ikke være det accepterede svar. OP spurgte om '\ ?? \ `og ikke` \\? \ `
Du har helt ret. Jeg kunne ikke slette mit svar, fordi det allerede var markeret som accepteret, men jeg redigerede det for at afspejle det rigtige svar.


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...