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


Функция 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
Звонок был выполнен в IRQL > DISPATCH_LEVEL.
STOR_STATUS_INSUFFICIENT_RESOURCES
Для завершения запроса недостаточно системных ресурсов.
STOR_STATUS_UNSUPPORTED_VERSION:
Указана неподдерживаемая (например, более текущая) версия структуры STOR_LOG_EVENT_DETAILS. При возвращении logDetails->InterfaceRevision устанавливается в последнюю поддерживаемую версию.
STOR_STATUS_INVALID_BUFFER_SIZE
Буферы, переданные функции, были слишком большими. При возврате этого значения максимальный размер данных и строк дампа минипорта устанавливается максимальным.
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 (include Storport.h)
правил соответствия DDI storPortIrql(storport)

См. также

StorPortLogError