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 |
---|---|
|
Die vom Treiber bei LogBuffer bereitgestellten Daten wurden in die Protokolldatei kopiert. |
|
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) |