Функция NdisMWriteLogData (ndis.h)
NdisMWriteLogData передает предоставленные драйвером сведения в файл журнала для использования и отображения выделенным драйвером приложением Win32.
Синтаксис
NDIS_STATUS NdisMWriteLogData(
[in] NDIS_HANDLE LogHandle,
[in] PVOID LogBuffer,
[in] UINT LogBufferSize
);
Параметры
[in] LogHandle
Указывает дескриптор, возвращаемый NdisMCreateLog.
[in] LogBuffer
Указатель на буфер, выделенный драйвером, содержащий записываемую информацию.
[in] LogBufferSize
Указывает, сколько байтов данных необходимо скопировать в файл журнала.
Возвращаемое значение
NdisMWriteLogData может возвращать одно из следующих данных:
Код возврата | Описание |
---|---|
|
Данные, предоставленные драйвером в LogBuffer , были скопированы в файл журнала. |
|
Заданное значение LogBufferSize слишком велико, то есть больше, чем сам файл журнала. |
Комментарии
Если приложение, выделенное для драйвера, имеет незавершенный запрос на получение данных файла журнала, NdisMWriteLogData выполняет этот запрос сразу после копирования сведений, предоставленных драйвером, в файл журнала.
Драйвер мини-порта может предоставить указатель LogBuffer на расположение в стеке ядра, если он в настоящее время выполняется на DISPATCH_LEVEL IRQL < . В противном случае LogBuffer должен получить доступ к буферу, выделенному драйвером из непагрегированного пула.
Драйвер должен освободить все блокировки спина, которые он удерживает, прежде чем вызывать NdisMWriteLogData.
NdisMWriteLogData не распознает границы между записями журнала, а также функцию Win32 DeviceIoControl, которую приложения могут вызывать с помощью IOCTL_NDIS_GET_LOG_DATA для получения данных, записанных в файл журнала NDIS драйвером мини-порта NDIS. NdisMWriteLogData записывает все данные, предоставленные драйвером miniport в LogBuffer , в файл журнала в виде потока байтов. DeviceIoControl также считывает данные из такого журнала в виде потока байтов.
Следовательно, приложение, считывающее журнал NDIS, должно собирать полученные данные в записи. Чтобы помочь такому приложению в сборе записей переменной длины, любой драйвер минипорта, записывая в такой журнал, может вставить маркер в начале каждой записи. Затем приложение, отформатированное для полученных данных, может искать эти маркеры, чтобы определить начало каждой записи.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. раздел NdisMWriteLogData (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. раздел NdisMWriteLogData (NDIS 5.1)) в Windows XP. |
Целевая платформа | Универсальное |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | Irql_Miniport_Driver_Function(ndis) |