Функция NdisWriteErrorLogEntry (ndis.h)
NdisWriteErrorLogEntry записывает запись в файл журнала ошибок ввода-вывода системы.
Синтаксис
void NdisWriteErrorLogEntry(
[in] NDIS_HANDLE NdisAdapterHandle,
[in] NDIS_ERROR_CODE ErrorCode,
[in] ULONG NumberOfErrorValues,
...
);
Параметры
[in] NdisAdapterHandle
Указывает дескриптор, представляющий сетевой адаптер, который является причиной ошибки ввода-вывода в журнал. Этот дескриптор является входным параметром для MiniportInitializeEx.
[in] ErrorCode
Указывает код NDIS_ERROR_CODE_XXX, который лучше всего описывает ошибку ввода-вывода как одно из следующих значений:
NDIS_ERROR_CODE_RESOURCE_CONFLICT
Драйвер не мог получить доступ к требуемому ресурсу.
NDIS_ERROR_CODE_OUT_OF_RESOURCES
Оборудование или драйвер не работали с ресурсами.
NDIS_ERROR_CODE_HARDWARE_FAILURE
Драйвер обнаружил ошибку оборудования.
NDIS_ERROR_CODE_ADAPTER_NOT_FOUND
Сетевой адаптер не найден.
NDIS_ERROR_CODE_INTERRUPT_CONNECT
Сбой регистрации прерываний.
NDIS_ERROR_CODE_DRIVER_FAILURE
Произошел сбой драйвера, который не соответствует ни одному из других условий ошибки.
NDIS_ERROR_CODE_BAD_VERSION
Драйвер обнаружил несоответствие версии.
NDIS_ERROR_CODE_TIMEOUT
Истекло время ожидания.
NDIS_ERROR_CODE_NETWORK_ADDRESS
Недопустимый сетевой адрес.
NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION
Запрошенная конфигурация драйвера не поддерживается.
NDIS_ERROR_CODE_INVALID_VALUE_FROM_ADAPTER
Оборудование сетевого адаптера предоставило недопустимое значение.
NDIS_ERROR_CODE_MISSING_CONFIGURATION_PARAMETER
Параметр конфигурации драйвера отсутствует в реестре.
NDIS_ERROR_CODE_BAD_IO_BASE_ADDRESS
Базовый адрес ввода-вывода для оборудования сетевого адаптера недопустим.
NDIS_ERROR_CODE_RECEIVE_SPACE_SMALL
Объем доступной буферной памяти для получения данных слишком мал.
NDIS_ERROR_CODE_ADAPTER_DISABLED
Оборудование сетевого адаптера отключено.
[in] NumberOfErrorValues
Указывает количество значений ULONG для выполнения этого параметра.
...
Указывает массив ULONG, связанный с ошибкой, связанной с записью в журнал.
Возвращаемое значение
Никакой
Замечания
NdisWriteErrorLogEntry выделяет запись журнала ошибок ввода-вывода, заполняет запись предоставленными сведениями об ошибке, а затем записывает запись в файл журнала ошибок ввода-вывода.
Система устанавливает ограничение на потенциальный размер записи журнала ошибок. Для Windows 2000 и более поздних версий ограничение определяется как ERROR_LOG_MAXIMUM_SIZE. Значение NumberOfErrorValues, переданное NdisWriteErrorLogEntry поэтому имеет ограничение, применяемое системой, которое значительно меньше максимального возможного значения для ULONG.
На практике мало вызывающих NdisWriteErrorLogEntry даже приближается к ограничению для NumberOfErrorValues, так как предоставление множества дополнительных NDIS_STATUS_XXX значений не особенно полезно для пользователя или системного администратора, который позже считывает журнал ошибок с помощью средства просмотра событий Win32. Ведение журнала ошибок ввода-вывода при каждой возможной возможности не особенно полезно для пользователей, поэтому минипорт-драйвер должен регистрировать только критические ошибки ввода-вывода, которые могут помочь пользователю или системному администратору отладить сетевой сбой, за который сетевой адаптер отвечает на определенном компьютере или конфликте ресурсов конфигурации, обнаруженных во время инициализации драйвера.
Как правило, драйвер минипорта вызывает NdisWriteErrorLogEntry во время инициализации из функции miniportInitializeEx, если она не может инициализировать сетевой адаптер, который он управляет или не может выделить аппаратные ресурсы, необходимые для выполнения операций ввода-вывода в сетевой адаптере. Мини-драйвер также может вызывать NdisWriteErrorLogEntry при сбое операции сброса устройства из-за неустранимых аппаратных ошибок. Ведение журнала таких ошибок ввода-вывода помогает пользователям или системным администраторам определить плохо настроенный сетевой адаптер или сетевой адаптер с сбоем компонентов оборудования.