Поделиться через


Расширения журнала событий Storport

Как и многие другие типы драйверов, драйверы минипорта Storport должны создавать записи в системном журнале событий, чтобы администраторы были проинформированы о состоянии подключенных устройств хранения. Эти записи журнала событий часто создаются в ответ на ошибки, связанные с устройством. События также можно регистрировать для телеметрии, отладки и оптимизации.

Хотя само ядро Windows предоставляет гибкий интерфейс для создания записей журнала событий, модель минипорта Storport не позволяет минипорт-драйверам напрямую обращаться к интерфейсу. Вместо этого Storport предоставляет оболочку для системного журнала событий ядра, а драйверы минипорта используют эту оболочку для создания записей в журнале событий.

В частности, Storport предоставляет следующие подпрограммы журнала событий:

  • StorPortLogTelemetryEx позволяет минипорту регистрировать меру ведения журнала трассировки или событие телеметрии с данными, настраиваемыми минипортом (Windows 10 версии 1903 или более поздней версии).
  • StorPortEtwChannelEvent2, StorPortEtwChannelEvent4и StorPortEtwChannelEvent8 позволяют минипортам публиковать события ETW в канал трассировки хранилища (Windows 10 версии 1809 и более поздних версий).
  • StorPortLogSystemEvent позволяет минипортам создавать запись журнала событий (Windows 7 и более поздней версии).

События Storport регистрируются с именем поставщика "Microsoft-Windows-Storage-Storport". Ошибки регистрируются в канале операционных, а отладка и аналитика регистрируются в диагностике (аналитика и отладка). При использовании приложения "Просмотр событий" необходимо сначала включить канал "Диагностика" , чтобы его просмотреть (чтобы включить, выберите Вид ->Показать аналитические и отладочные журналы).

Приведенные выше функции реализованы как расширенные функции Storport и доступны минипорт-драйверам через существующий интерфейс расширенной функции. Использование расширенного интерфейса функции позволяет избежать прямой ссылки на динамическую ссылку на новую функцию. Избегая прямой ссылки, минипорт-драйверы, использующие новую функцию, правильно загружаются в операционных системах, которые не поддерживают эту функцию, при этом функция возвращает STOR_STATUS_NOT_IMPLEMENTED, если она не поддерживается. Таким образом, поставщики могут создать один мини-драйвер, работающий в нескольких выпусках ОС, используя новую функцию ведения журнала событий, в которой она поддерживается.

В версиях Storport до Windows 7 интерфейс системного журнала событий Storport, StorPortLogError, предоставлял минипорт-драйверам только небольшой доступ к возможностям системного журнала событий ядра, что сказывалось на полезности записей об ошибках минипорта.

Для получения общей информации о событиях Windows см. в разделах и.