NdisMCreateLog function (ndis.h)

NdisMCreateLog allocates and opens a log file in which a miniport driver can write data to be displayed by a driver-dedicated Win32 application.

Syntax

NDIS_STATUS NdisMCreateLog(
  [in]  NDIS_HANDLE  MiniportAdapterHandle,
  [in]  UINT         Size,
  [out] PNDIS_HANDLE LogHandle
);

Parameters

[in] MiniportAdapterHandle

Specifies the handle input to MiniportInitializeEx.

[in] Size

Specifies how many bytes to allocate for the log file. NDIS creates a temporary file that is not stored on disk.

[out] LogHandle

Pointer to a caller-supplied variable in which this function returns a handle to the log file. This handle is a required parameter to the NdisXxxLog functions that the miniport driver calls subsequently.

Return value

NdisMCreateLog can return one of the following:

Return code Description
NDIS_STATUS_SUCCESS
The miniport driver can use the handle returned at LogHandle to write data to the NDIS-allocated log file.
NDIS_STATUS_RESOURCES
A log file of the specified size could not be allocated.
NDIS_STATUS_FAILURE
The driver already called NdisMCreateLog successfully.

Remarks

A miniport driver can call the NdisM..Log functions to provide any information the driver writer chooses. Whatever the miniport driver logs can be displayed by a driver-dedicated Win32 application. Such an application calls the Win32 function DeviceIoControl with IOCTL_NDIS_GET_LOG_DATA periodically to retrieve whatever the miniport driver has written to the log file. For example, an under-development miniport driver might write test data to be displayed by its corresponding application.

If NdisMCreateLog returns NDIS_STATUS_RESOURCES, the driver can adjust the original Size down and try calling this function again. However, a miniport driver cannot call NdisMCreateLog to create more than one log file after a call succeeds.

Whatever size of log file is allocated, subsequent calls to NdisMWriteLogData store data in this file, which is treated as a circular buffer. That is, a sequence of calls to NdisMWriteLogData eventually overwrites the data originally written to the log file.

Requirements

Requirement Value
Minimum supported client Supported for NDIS 6.0 and NDIS 5.1 drivers (see NdisMCreateLog (NDIS 5.1)) in Windows Vista. Supported for NDIS 5.1 drivers (see NdisMCreateLog (NDIS 5.1)) in Windows XP.
Target Platform Universal
Header ndis.h (include Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL
DDI compliance rules Irql_Miniport_Driver_Function(ndis)

See also

MiniportInitializeEx

NdisMCloseLog

NdisMFlushLog

NdisMWriteLogData