Функция StorPortLogSystemEvent (storport.h)

Подпрограмма StorPortLogSystemEvent предоставляет драйверам минипорта полный доступ к возможностям средства событий ядра Windows, позволяя драйверам мини-портов создавать записи журнала событий, которые действительно полезны при устранении неполадок с хранилищем. Он предоставляет лучшую альтернативу существующей функции ведения журнала событий драйвера мини-порта StorPortLogError.

Синтаксис

ULONG StorPortLogSystemEvent(
  [in]      PVOID                   HwDeviceExtension,
  [in, out] PSTOR_LOG_EVENT_DETAILS LogDetails,
  [in, out] PULONG                  MaximumSize
);

Параметры

[in] HwDeviceExtension

Указатель на расширение аппаратного устройства. Это область хранения HBA, которую драйвер порта выделяет и инициализирует от имени драйвера мини-порта. Драйверы мини-портов обычно хранят сведения, относящиеся к HBA, в этом расширении, такие как состояние HBA и сопоставленные диапазоны доступа для HBA. Эта область доступна для мини-порта сразу после того, как драйвер мини-порта вызывает StorPortInitialize. Драйвер порта освобождает эту память при удалении устройства.

[in, out] LogDetails

Структура STOR_LOG_EVENT_DETAILS , содержащая сведения, которые будут отображаться в записи журнала системных событий.

[in, out] MaximumSize

Переменная для получения максимального совокупного размера данных и строк дампа мини-порта. Возвращается, только если функция завершается сбоем и возвращает значение STOR_STATUS_INVALID_BUFFER_SIZE. Этот параметр является необязательным.

Возвращаемое значение

Код возврата Описание
STOR_STATUS_NOT_IMPLEMENTED
Эта функция не реализована в активной операционной системе.
STOR_STATUS_INVALID_PARAMETER
Передан недопустимый параметр.
STOR_STATUS_INVALID_IRQL
Звонок был сделан на > DISPATCH_LEVEL IRQL.
STOR_STATUS_INSUFFICIENT_RESOURCES
Для выполнения запроса недостаточно системных ресурсов.
STOR_STATUS_UNSUPPORTED_VERSION:
Указана неподдерживаемая (например, более текущая) версия структуры STOR_LOG_EVENT_DETAILS. Когда этот параметр возвращается, для параметра LogDetails->InterfaceRevision устанавливается последняя поддерживаемая версия.
STOR_STATUS_INVALID_BUFFER_SIZE
Буферы, переданные в функцию, были слишком большими. При возвращении этого значения параметру MaximumSize присваивается максимальный комбинированный размер данных и строк дампа мини-порта.
STOR_STATUS_SUCCESS
Операция журнала успешно завершена.

Комментарии

Чтобы понять, как лучше всего использовать пользовательские коды ошибок, см. статью Расширения журнала ошибок Storport. Подпрограмма StorPortLogSystemEvent должна вызываться по адресу IRQL <= DISPATCH_LEVEL. Если вы передаете более позднюю версию STOR_LOG_EVENT_DETAILS, чем поддерживаемая этой сборкой, эта функция изменяет поле InterfaceRevision на последнюю поддерживаемую версию и возвращает STOR_STATUS_UNSUPPORTED_VERSION. Поле InterfaceRevision STOR_LOG_EVENT_DETAILS является 32-разрядным значением. Однако для проверки используются только три наиболее важных байта. Низкий байт зарезервирован для различения совместимых незначительных вариантов конкретной версии. Например, структура редакции 0x00000101 совместима с Storport, который реализует 0x00000100 редакции интерфейса, хотя вполне возможно, что некоторые незначительные, некритические функции могут быть потеряны. Если указать объединенный размер данных дампа и строк, превышающий максимальный допустимый размер записи журнала событий, для целого числа, на который указывает MaximumSize, устанавливается максимальный допустимый размер данных и строк дампа мини-порта, и возвращается STOR_INVALID_BUFFER_SIZE. Хотя эта функция принимает значения ULONG для описателей пути, целевого объекта и адреса LUN, значения усекаются до значений UCHAR, так как Storport внутренне поддерживает только 8-разрядные значения для этих описателей.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть storport.h (включая Storport.h)
Правила соответствия DDI StorPortIrql(storport)

См. также раздел

StorPortLogError