Забавный факт - если писать на диск данные во время работы Autochk, то система зависнет:
Воспроизвести можно так: fsutil dirty set C: и перезагрузка.
Включенный verifier даст больше информации, чем скрин выше:
[FltMgr] Mini-filter verification enabled for "test" filter.
KDTARGET: Refreshing KD connection
Driver Verifier: Enabled for test.sys, flags 0x209bb, build 9200, key IeDrfOgBNzQtNzJiutJGkF
Autochk cannot lock system volume due to a sharing violation.
This is caused by a driver holding a file opened for write access.
Check all newly added driver NtCreateFile and NtOpenFile calls or run:
!FindAutochkBlockers
From "kd" to list the files which may be preventing autochk from running.
Break instruction exception - code 80000003 (first chance)
0033:000007f7`1955e790 cc int 3
kd> k
# Child-SP RetAddr Call Site
00 0000000a`53ac9ba0 0000000a`53bc6d90 0x000007f7`1955e790
01 0000000a`53ac9ba8 00000000`00000000 0x0000000a`53bc6d90
kd> !FindAutochkBlockers
Kernel handle Error reading handle count.
007c: Object: fffffa801ad93f20 GrantedAccess: 00000004
Type: File Flag: 00000000
File Name: \Program Files (x86)\Test\2022_10_21_11_01_54_372837.log
00a0: Object: fffffa801ae19d60 GrantedAccess: 00000004
Type: File Flag: 00000000
File Name: \Program Files (x86)\Test\2022_10_21_11_01_54_683864.log
00cc: Object: fffffa801b23e070 GrantedAccess: 00000001
Type: File Flag: 00000000
File Name:
00d8: Object: fffffa801ad7a770 GrantedAccess: 0012019f
Type: File Flag: 00000000
File Name: \$Extend\$RmMetadata\$TxfLog\$TxfLogContainer00000000000000000002
00dc: Object: fffffa801ad7aa20 GrantedAccess: 0012019f
Type: File Flag: 00000000
File Name: \$Extend\$RmMetadata\$TxfLog\$TxfLogContainer00000000000000000001
00e0: Object: fffffa801ada1350 GrantedAccess: 0012019f
Type: File Flag: 00000000
File Name: \$Extend\$RmMetadata\$TxfLog\$TxfLog.blf
021c: Object: fffffa801b2f4690 GrantedAccess: 00000004
Type: File Flag: 00000000
File Name: \Program Files (x86)\Test\2022_10_21_11_01_52_111448.log
024c: Object: fffffa801aa56f20 GrantedAccess: 0013019f
Type: File Flag: 00000000
File Name: \Program Files (x86)\Test\data
Причина всего этого: Autochk.exe не может залочить том из-за того, что мой драйвер держит несколько файлов открытыми на запись.
Исправить это можно отказавшись от записи на время работы Autochk.exe.
А факт окончания работы Autochk.exe можно определить через функцию FsRtlAreVolumeStartupApplicationsComplete.
Комментариев нет:
Отправить комментарий