Функция 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. Этот параметр является необязательным.
Возвращаемое значение
Код возврата | Описание |
---|---|
|
Эта функция не реализована в активной операционной системе. |
|
Передан недопустимый параметр. |
|
Звонок был сделан на > DISPATCH_LEVEL IRQL. |
|
Для выполнения запроса недостаточно системных ресурсов. |
|
Указана неподдерживаемая (например, более текущая) версия структуры STOR_LOG_EVENT_DETAILS. Когда этот параметр возвращается, для параметра LogDetails->InterfaceRevision устанавливается последняя поддерживаемая версия. |
|
Буферы, переданные в функцию, были слишком большими. При возвращении этого значения параметру MaximumSize присваивается максимальный комбинированный размер данных и строк дампа мини-порта. |
|
Операция журнала успешно завершена. |
Комментарии
Чтобы понять, как лучше всего использовать пользовательские коды ошибок, см. статью Расширения журнала ошибок 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) |