Freigeben über


NdisMWriteLogData-Funktion (ndis.h)

NdisMWriteLogData überträgt vom Treiber bereitgestellte Informationen zur Nutzung und Anzeige durch eine treiberspezifische Win32-Anwendung in die Protokolldatei.

Syntax

NDIS_STATUS NdisMWriteLogData(
  [in] NDIS_HANDLE LogHandle,
  [in] PVOID       LogBuffer,
  [in] UINT        LogBufferSize
);

Parameter

[in] LogHandle

Gibt das von NdisMCreateLog zurückgegebene Handle an.

[in] LogBuffer

Zeiger auf einen vom Treiber zugewiesenen Puffer, der die zu schreibenden Informationen enthält.

[in] LogBufferSize

Gibt an, wie viele Datenbytes in die Protokolldatei kopiert werden sollen.

Rückgabewert

NdisMWriteLogData kann folgendes zurückgeben:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Die vom Treiber bei LogBuffer bereitgestellten Daten wurden in die Protokolldatei kopiert.
NDIS_STATUS_BUFFER_OVERFLOW
Die angegebene LogBufferSize ist zu groß, d. h. größer als die Protokolldatei selbst.

Hinweise

Wenn die treiberspezifische Anwendung eine ausstehende Anforderung für Protokolldateidaten aufweist, erfüllt NdisMWriteLogData diese Anforderung, sobald die vom Treiber bereitgestellten Informationen in die Protokolldatei kopiert wurden.

Der Miniporttreiber kann einen LogBuffer-Zeiger auf einen Speicherort auf dem Kernelstapel bereitstellen, wenn er derzeit bei IRQL < DISPATCH_LEVEL ausgeführt wird. Andernfalls muss LogBuffer auf einen Puffer zugreifen, den der Treiber aus einem nicht ausgestellten Pool zugewiesen hat.

Der Treiber muss jede Spinsperre freigeben, die er hält, bevor er NdisMWriteLogData aufruft.

NdisMWriteLogData erkennt weder Grenzen zwischen Protokolldatensätzen, noch die Win32-Funktion DeviceIoControl, die Anwendungen mit IOCTL_NDIS_GET_LOG_DATA aufrufen können, um Daten abzurufen, die von einem NDIS-Miniporttreiber in eine NDIS-Protokolldatei geschrieben wurden. NdisMWriteLogData schreibt alle von Miniporttreibern bereitgestellten Daten bei LogBuffer als Bytestream in die Protokolldatei. DeviceIoControl liest die Daten auch aus einem solchen Protokoll als Bytestream.

Folglich muss eine Anwendung, die ein NDIS-Protokoll liest, abgerufene Daten in Datensätzen sammeln. Um eine solche Anwendung beim Sammeln von Datensätzen mit variabler Länge zu unterstützen, kann jeder Miniporttreiber, der in ein solches Protokoll schreibt, einen Marker am Anfang jedes Datensatzes einfügen. Anschließend kann die Anwendung, die die abgerufenen Daten formatiert, nach diesen Markern suchen, um den Start jedes Datensatzes zu bestimmen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisMWriteLogData (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisMWriteLogData (NDIS 5.1)) in Windows XP.
Zielplattform Universell
Header ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_Miniport_Driver_Function(ndis)

Weitere Informationen

NdisAllocateFromNPagedLookasideList NdisAllocateMemoryWithTagPriority

NdisMCloseLog

NdisMCreateLog

NdisMFlushLog

NdisReleaseSpinLock