Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«3.Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство Windows (Π³Π». 8-11)Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 35

Автор ΠœΠ°Ρ€ΠΊ Руссинович

Если Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ диспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ NTFS ΠΊΠΎΠ΄ статуса ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π°, Π½Π΅ сопоставлСн с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² Windows Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π°, Π·Π½Π°Ρ‡ΠΈΡ‚, Π΅Π³ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π΅ обрабатываСтся Π½ΠΈ ΠΎΠ΄Π½ΠΈΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°. Π’ΠΎΠ³Π΄Π° диспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° сообщаСт диспСтчСру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ± ошибкС, которая пСрСдаСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠ΅ΠΌΡƒΡΡ ΠΊ этому Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ, Π² Π²ΠΈΠ΄Π΅ Β«file cannot be accessed by the systemΒ» (Β«Ρ„Π°ΠΉΠ» нСдоступСн систСмС»).

Π’ΠΎΡ‡ΠΊΠΈ монтирования β€” это Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… имя Ρ‚ΠΎΠΌΠ° (\Global??\Volume{X}) хранится ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π°. Назначая ΠΈΠ»ΠΈ удаляя ΠΏΡƒΡ‚ΠΈ для Ρ‚ΠΎΠΌΠΎΠ² Π² оснасткС Disk Management, Π²Ρ‹ создаСтС Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования. Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования ΠΌΠΎΠΆΠ½ΠΎ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Mountvol.exe (\Windows\System32\Mountvol.exe).

ДиспСтчСр монтирования ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‚ΠΎΠΌΠ΅ NTFS ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ рСгистрируСт всС Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ для Ρ‚ΠΎΠΌΠ°. Π€Π°ΠΉΠ» этой Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, $MountMgrRemoteDatabase, размСщаСтся Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ NTFS. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ диска ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами ΠΈ Π² срСдах с Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ (Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСм Windows) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования β€” благодаря Π½Π°Π»ΠΈΡ‡ΠΈΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… диспСтчСра монтирования. NTFS отслСТиваСт Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования Π² Ρ„Π°ΠΉΠ»Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… \lExtend\IReparse (Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… NTFS Π½Π΅ доступСн прилоТСниям). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ NTFS Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… монтирования Π² Ρ„Π°ΠΉΠ»Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ запросС Windows-прилоТСния Windows ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ для Ρ‚ΠΎΠΌΠ°.


Π­ΠšΠ‘ΠŸΠ•Π Π˜ΠœΠ•ΠΠ’: рСкурсивныС Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования

Π­Ρ‚ΠΎΡ‚ экспСримСнт с использованиСм ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Filemon {wwwsysinter nals.com) дСмонстрируСт Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ систСмы, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ рСкурсивной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ монтирования. РСкурсивной называСтся Ρ‚ΠΎΡ‡ΠΊΠ° монтирования, связанная с Ρ‚Π΅ΠΌ Ρ‚ΠΎΠΌΠΎΠΌ, Π³Π΄Π΅ ΠΎΠ½Π° находится. РСкурсивноС пСрСчислСниС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², выполняСмоС Π½Π° рСкурсивной Ρ‚ΠΎΡ‡ΠΊΠ΅ монтирования, позволяСт наглядно ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ NTFS ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования.

Для создания ΠΈ просмотра Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования ΠΏΡ€ΠΎΠ΄Π΅Π»Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈΠ»ΠΈ Windows Explorer ΠΈ создайтС Π½Π° NTFS-дискС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ \Recurse.

2. B оснасткС Disk Management (Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ дисками) консоли MMC Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ· контСкстного мСню ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Change Drive Letter And Path (Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ диска ΠΈΠ»ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ диску).

3. B появившСмся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ созданному Π²Π°ΠΌΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, I: \Recurse).

4. Π—апуститС Filemon. B мСню Drives ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠΌΠ°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ создана Ρ‚ΠΎΡ‡ΠΊΠ° монтирования.


Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ трассировкС рСкурсивной Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ dir /s I: \Recurse. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° ссылками Π½Π° Recurse, рСгистрируСмыми Filemon ΠΏΡ€ΠΈ трассировкС Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ сначала ΠΈΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ I: \Re-curse, Π·Π°Ρ‚Π΅ΠΌ ΠΊ I: \Recurse\Recurse ΠΈ Ρ‚. Π΄.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ пСрСчисляСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ рСкурсии, Π½ΠΎ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° встрСчаСт Ρ‚ΠΎΡ‡ΠΊΡƒ монтирования, ΠΎΠ½ΠΎ закапываСтся всС Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΈ Π³Π»ΡƒΠ±ΠΆΠ΅, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ пСрСчислСниС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². NTFS Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ статуса ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сигнализируСт диспСтчСру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎ нСобходимости Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ рСкурсии ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. НаконСц, Π²Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ исслСдуСт Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΈΠΌ ΠΏΡ€ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ рСкурсии. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ΄ статуса ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ диспСтчСр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² сам ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ статусныС ΠΊΠΎΠ΄Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈΡ… ΠΎΡ‚ NTFS.

Filemon ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ запрос Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΊΠ°ΠΊ IRP_ MJ_CREATE, запрос Π½Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° β€” ΠΊΠ°ΠΊ IRP_MJ_CLOSE, Π° запрос свСдСний ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… β€” ΠΊΠ°ΠΊ IRP_MJ_DIRECTORY CONTROL, выполняСмый с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FileBothDirectoryInfo (см. ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Other).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² ΠΈ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² бСсконСчный Ρ†ΠΈΠΊΠ», ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ процСссор ΠΈ Windows Explorer ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ ΠΏΠΎ достиТСнии 32-Π³ΠΎ уровня влоТСнности ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Ρ‹ ΠΏΡƒΡ‚ΠΈ Π² 256 символов β€” смотря Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ быстрСС.


ΠœΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠΌΠΎΠ²

Π’ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Windows присваиваСт Ρ‚ΠΎΠΌΡƒ Π±ΡƒΠΊΠ²Ρƒ диска, Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ этот Ρ‚ΠΎΠΌ содСрТит Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, извСстной Windows. ΠŸΡ€ΠΎΡ†Π΅ΡΡ распознавания Ρ‚ΠΎΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ какая-Π»ΠΈΠ±ΠΎ файловая систСма ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π» своим; ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· этот процСсс происходит ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ядра, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° устройства ΠΈΠ»ΠΈ прилоТСния ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ‚ΠΎΠΌΠ΅. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы увСдомляСт ΠΎ взятии Π½Π° сСбя отвСтствСнности Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ, диспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° направляСт всС адрСсованныС этому Ρ‚ΠΎΠΌΡƒ запросы Π΄Π°Π½Π½ΠΎΠΌΡƒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ монтирования Π² Windows проходят Π² Ρ‚Ρ€ΠΈ этапа: рСгистрация Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚ΠΎΠΌΠ° (volume parameter blocks, VPB) ΠΈ запросы Π½Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.


ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π• B Windows Server 2003 Enterprise ΠΈ Datacenter Edition автоматичСскоС ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ агрСссивного монтирования Ρ‚ΠΎΠΌΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ сСти устройств хранСния Π΄Π°Π½Π½Ρ‹Ρ… (System Area Network, SAN). Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ автоматичСского монтирования ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Diskpart, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ с Windows Server 2003, Π° для монтирования Ρ‚ΠΎΠΌΠΎΠ² Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ Mountvol, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ с этой систСмой.


ΠŸΡ€ΠΎΡ†Π΅ΡΡ монтирования ΠΊΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ диспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ извСстны доступныС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρƒ Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Для рСгистрации Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… (Π½Π΅ сСтСвых) дисках ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° функция IoRegisterFileSystem, прСдоставляСмая диспСтчСром Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Когда Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы рСгистрируСтся, диспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° сохраняСт ссылку Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π² спискС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ опСрациях монтирования.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «устройство» содСрТит структуру Π΄Π°Π½Π½Ρ‹Ρ… VPB, Π½ΠΎ диспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° VPB ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΎΠΌΠΎΠ². VPB слуТит для связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΎΠΌΠ° ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ «устройство», созданным Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы для прСдставлСния экзСмпляра Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, смонтированной для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠΌΠ°. Если ссылка VPB Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму пуста, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‚ΠΎΠΌ Π½Π΅ смонтирован Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой. ДиспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° провСряСт VPB ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΎΠΌΠ° всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° выполняСтся API-функция открытия Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π½Π° этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ «устройство».

НапримСр, Ссли диспСтчСр монтирования Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ Ρ‚ΠΎΠΌΡƒ систСмы Π±ΡƒΠΊΠ²Ρƒ D, ΠΎΠ½ создаСт ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ссылку \Global??\D:, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ \Device\HarddiskVolume2. Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ‹Ρ‚Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» \Temp\Test.txt Π½Π° дискС D:, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ имя D: \Temp\Test.txt, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ подсистСма Windows ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π² \Global??\D: \Temp\Test.txt ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ NtCreateFile β€” ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ядра, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π·Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°. NtCreateFile ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ диспСтчСр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΈΠΌΠ΅Π½ΠΈ, ΠΈ диспСтчСр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «устройство» \Device\HarddiskVolume2 с Π΅Ρ‰Π΅ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ \Temp\Test.txt. Ha этом этапС диспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° провСряСт, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² VPB ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° \Device\HarddiskVolume2 ссылка Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму. Если Π½Π΅Ρ‚, диспСтчСр Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π²Ρ‹Π΄Π°Π΅Ρ‚ зарСгистрированному Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы запрос Π½Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, распознаСт Π»ΠΈ ΠΎΠ½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΎΠΌΠ° ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ своСй Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.


Π­ΠšΠ‘ΠŸΠ•Π Π˜ΠœΠ•ΠΠ’: просмотр VPB

Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ содСрТимоС VPB позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π° !vpb ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ядра. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° VPB ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «устройство» Ρ‚ΠΎΠΌΠ°, сначала Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Для этого создайтС Π΄Π°ΠΌΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Β«Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Β» диспСтчСра Ρ‚ΠΎΠΌΠΎΠ², Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «устройство», ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΌ, просмотритС Π΅Π³ΠΎ содСрТимоС ΠΈ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅ VPB.

Если Π² систСмС Π΅ΡΡ‚ΡŒ динамичСский диск, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ !drvobj ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ DMIO, Π° Ссли Π½Π΅Ρ‚ β€” ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ FtDisk. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Команда !drvobj пСрСчисляСт адрСса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² «устройство», ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ. B этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² β€” сСмь. Один ΠΈΠ· Π½ΠΈΡ… прСдставляСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° устройства, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΎΠΌΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² порядкС, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядку ΠΈΡ… создания, Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ создаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «устройство» интСрфСйса Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° устройства, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ пСрСчислСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «устройство» являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΎΠΌΠ°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ !devobj ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ядра, ΡƒΠΊΠ°Π·Π°Π² Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° адрСс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΎΠΌΠ°.

Команда !devobj ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅ VPB ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΎΠΌΠ°. (Π”Π°Π½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ «устройство» присвоСно имя HarddiskVolume6.) Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ !vpb:

B ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ выяснили, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΎΠΌΠ° смонтирован Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присвоил Π΅ΠΌΡƒ имя BACKUP. VPB-ΠΏΠΎΠ»Π΅ RealDevice ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΎΠΌΠ°, Π° ΠΏΠΎΠ»Π΅ DeviceObject ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «устройство» смонтированной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.