Функция 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 может возвращать одно из следующих данных:

Код возврата Описание
NDIS_STATUS_SUCCESS
Данные, предоставленные драйвером в LogBuffer , были скопированы в файл журнала.
NDIS_STATUS_BUFFER_OVERFLOW
Заданное значение 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)

См. также раздел

NdisAllocateFromNPagedLookasideList NdisAllocateMemoryWithTagPriority

NdisMCloseLog

NdisMCreateLog

NdisMFlushLog

NdisReleaseSpinLock