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


Функция 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 на расположение в стеке ядра, если он в настоящее время работает в IRQL < DISPATCH_LEVEL. В противном случае LogBuffer должен получить доступ к буферу, который драйвер, выделенный из непагрегированного пула.

Драйвер должен освободить любую блокировку спина, удерживаемую перед вызовом NdisMWriteLogData.

NdisMWriteLogData не распознает границы между записями журналов, а также не функция Win32, DeviceIoControl, которые приложения могут вызываться с помощью IOCTL_NDIS_GET_LOG_DATA для получения данных, записанных в файл журнала NDIS с помощью мини-порта NDIS. NdisMWriteLogData записывает все данные, предоставленные драйвером мини-порта, в 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 (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_Miniport_Driver_Function(ndis)

См. также

NdisAllocateFromNPagedLookasideList NdisAllocateMemoryWithTagPriority

NdisMCloseLog

NdisMCreateLog

NdisMFlushLog

NdisReleaseSpinLock