Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция ведения журнала IRP в средстве проверки драйверов отслеживает использование IRP драйверами и записывает данные об этом использовании. Эта запись хранится в виде сведений WMI.
Пакет драйверов Windows (WDK) включает средство DC2WMIParser (dc2wmiparser.exe), которое может преобразовать эту запись WMI в текстовый файл.
Этот параметр средства проверки драйверов доступен только в Windows Server 2003 и более поздних версиях.
Запись WMI
Запись WMI не будет содержать более 20 IRP для каждого устройства. После записи двадцать первого IRP первая запись IRP заменяется. Так что если запись перечисляет двадцать IRP, это всегда самые последние двадцать, но нет способа узнать, какой из них является самым последним.
Так как запись WMI хранится в памяти, она будет удалена при перезагрузке компьютера. Поэтому используйте DC2WMIParser для сохранения этих сведений в файл.
Если вы используете параметр /t , DC2WMIParser будет непрерывно работать в течение указанной длительности. В этой ситуации запись может включать более двадцати IRP для каждого устройства (до двадцати IRP в каждом периоде выборки).
Активация этого параметра
Вы можете активировать функцию ведения журнала IRP для одного или нескольких драйверов с помощью диспетчера проверки драйверов или командной строки Verifier.exe.
Чтобы активировать функцию ведения журнала IRP, необходимо также активировать проверку ввода-вывода.
В командной строке
В командной строке параметр ведения журнала IRP представлен 0x400 (бит 10).
Чтобы активировать ведение журнала IRP, используйте значение флага 0x410 или добавьте 0x410 в значение флага. Это значение активирует проверку ввода-вывода (0x10) и ведение журнала IRP (0x400). Рассмотрим пример.
verifier /flags 0x410 /driver MyDriver.sysФункция будет активна после следующей загрузки.
В Windows Vista и более поздних версиях Windows можно также активировать и отключить ведение журнала IRP без перезагрузки компьютера, добавив в команду параметр /volatile . Рассмотрим пример.
verifier /volatile /flags 0x410 /adddriver MyDriver.sysЭтот параметр действует немедленно, но теряется при завершении работы или перезагрузке компьютера. Для получения подробной информации см. Использование изменяемых параметров.
Использование диспетчера проверки драйверов
- Запустите диспетчер проверки драйверов. В окне командной строки введите средство проверки .
- Выберите "Создать настраиваемые параметры" (для разработчиков кода) и нажмите кнопку "Далее".
- Выберите отдельные параметры из полного списка.
- Выберите (проверьте) ведение журнала IRP и проверку ввода-вывода.
DC2WMIParser
DC2WMIParser — это средство, которое собирает записи WMI IRP, созданные средством проверки драйверов, и преобразует этот журнал в текстовый файл.
Синтаксис DC2WMIParser выглядит следующим образом:
dc2wmiparser [/f File] [/t Time]
Параметры имеют следующие значения:
/fFile
Указывает полный путь и имя файла журнала для записи. Относительные пути будут приниматься относительно текущего каталога. Если это не указано, будет использоваться имя файла dc2verifier.act в текущем каталоге.
/tTime
Указывает длительность времени работы DC2WMIParser в минутах. Если Time равно нулю, DC2WMIParser запишет всю информацию WMI IRP, которая уже была сохранена Проверяющим Драйверов, а затем завершит работу. Если Time задано положительное значение, DC2WMIParser будет продолжать выполняться в течение заданного времени, сохраняя новую информацию по мере её появления. Значение по умолчанию равно нулю.
Формат файлов журнала DC2WMIParser
Файл, созданный DC2WMIParser, является текстовым файлом ASCII.
Первая строка этого файла содержит десятичное число, представляющее количество устройств, вошедшего в файл.
После первой строки файл делится на разделы; в каждом разделе описывается одно устройство.
Для каждого устройства используется следующий формат:
В одной строке: Имя устройства.
В одной строке: Десятичное число, указывающее количество типов устройств и функций, предназначенных для этого устройства.
В одной строке для каждого типа устройства и функции: Три шестнадцатеричных числа, разделенные запятыми. Они представляют тип устройства, а также самые низкие и самые высокие функции, записанные в этой записи.
В одной группе строк для каждого типа устройства и функции:
- Одна строка с десятичным числом, указывающая количество управляющих кодов ввода-вывода (IOCTL) для текущего типа устройства.
- Одна строка для каждого IOCTL. Каждая из этих строк содержит шесть шестнадцатеричных чисел, разделенных запятыми. Они указывают тип устройства, функцию, метод, доступ, длину входного буфера и длину выходного буфера.
Ниже приведен пример файла журнала DC2WMIParser. В фактическом файле не будет пробелов, комментариев или пустых строк, но они были добавлены в этот пример, чтобы сделать его более понятным.
2 There are two devices described by this log file.
The first device begins here:
DP(1)0x7e00-0x21dbda400+3 Device name of the first device
2 Number of device type IOCTLs targeted at this device
7,12,12 First targeted device: device type 7, low function 12, high function 12
2d,420,420 Second targeted device: device type 2d, low function 420, high function 420
1 Number of IOCTLs for first targeted device (type 7)
7,12,0,0,90,0 Device type 7, function 12, method 0, access 0, inbuflen 90, outbuflen 0
1 Number of IOCTLs for second targeted device (type 2d)
2d,420,0,0,c,0 Device type 2d, function 420, method 0, access 0, inbuflen c, outbuflen 0
The second device begins here:
DP(1)0x7e00-0x21dbda400+2 Device name of the second device
2 Number of device type IOCTLs targeted at this device
7,12,12 First targeted device: device type 7, low function 12, high function 12
2d,420,420 Second targeted device: device type 2d, low function 420, high function 420
1 Number of IOCTLs for first targeted device (type 7)
7,12,0,0,90,0 Device type 7, function 12, method 0, access 0, inbuflen 90, outbuflen 0
1 Number of IOCTLs for second targeted device (type 2d)
2d,420,0,0,c,0 Device type 2d, function 420, method 0, access 0, inbuflen c, outbuflen 0