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