Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
NdisWriteErrorLogEntry writes an entry to the system I/O error log file.
Syntax
void NdisWriteErrorLogEntry(
[in] NDIS_HANDLE NdisAdapterHandle,
[in] NDIS_ERROR_CODE ErrorCode,
[in] ULONG NumberOfErrorValues,
...
);
Parameters
[in] NdisAdapterHandle
Specifies the handle representing the NIC that is the cause of the I/O error to be logged. This handle is an input parameter to MiniportInitializeEx.
[in] ErrorCode
Specifies the NDIS_ERROR_CODE_XXX code that best describes the I/O error as one of the following values:
NDIS_ERROR_CODE_RESOURCE_CONFLICT
The driver could not access a required resource.
NDIS_ERROR_CODE_OUT_OF_RESOURCES
The hardware or driver ran out of resources.
NDIS_ERROR_CODE_HARDWARE_FAILURE
The driver detected a hardware error.
NDIS_ERROR_CODE_ADAPTER_NOT_FOUND
The network adapter was not found.
NDIS_ERROR_CODE_INTERRUPT_CONNECT
The interrupt registration failed.
NDIS_ERROR_CODE_DRIVER_FAILURE
A driver failure occurred that does not match any of the other error conditions.
NDIS_ERROR_CODE_BAD_VERSION
The driver detected a version mismatch.
NDIS_ERROR_CODE_TIMEOUT
A timeout expired.
NDIS_ERROR_CODE_NETWORK_ADDRESS
A network address is invalid.
NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION
The requested driver configuration is not supported.
NDIS_ERROR_CODE_INVALID_VALUE_FROM_ADAPTER
The network adapter hardware provided an invalid value.
NDIS_ERROR_CODE_MISSING_CONFIGURATION_PARAMETER
A driver configuration parameter is missing in the registry.
NDIS_ERROR_CODE_BAD_IO_BASE_ADDRESS
The I/O base address for the network adapter hardware is invalid.
NDIS_ERROR_CODE_RECEIVE_SPACE_SMALL
The amount of receive buffer memory that is available is too small to receive data.
NDIS_ERROR_CODE_ADAPTER_DISABLED
The network adapter hardware is disabled.
[in] NumberOfErrorValues
Specifies the number of ULONG values to follow this parameter.
...
Specifies a variable-sized array of ULONGs associated with the error to be logged.
Return value
None
Remarks
NdisWriteErrorLogEntry allocates an I/O error log record, fills in the record with the supplied information about the error, and then writes the record to the I/O error log file.
The system places a limit on the potential size of an error log record. For Windows 2000 and later versions, the limit is defined as ERROR_LOG_MAXIMUM_SIZE. The NumberOfErrorValues passed to NdisWriteErrorLogEntry therefore has a system-enforced limit, which is considerably less than the maximum possible value for a ULONG.
In practice, few callers of NdisWriteErrorLogEntry even approach the limit for NumberOfErrorValues because supplying many additional NDIS_STATUS_XXX values is not particularly helpful to the user or system administrator who later reads the error log, using the Win32 event viewer. Logging an I/O error at every possible opportunity is not particularly helpful to users either, so a miniport driver should log only critical I/O errors that can help a user or system administrator to debug a network failure for which the NIC is responsible on a particular machine or a configuration resource conflict discovered during driver initialization.
In general, a miniport driver calls NdisWriteErrorLogEntry during initialization from its MiniportInitializeEx function if it cannot initialize a NIC that it controls or cannot allocate the hardware resources it needs to carry out I/O operations on a NIC. A miniport driver also can call NdisWriteErrorLogEntry when a device-reset operation fails due to unrecoverable hardware error(s). Logging these kinds of I/O errors helps users or system administrators to identify a badly configured NIC or a NIC with failing hardware components.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported for NDIS 6.0 and NDIS 5.1 drivers (see NdisWriteErrorLogEntry (NDIS 5.1)) in Windows Vista. Supported for NDIS 5.1 drivers (see NdisWriteErrorLogEntry (NDIS 5.1)) in Windows XP. |
Target Platform | Universal |
Header | ndis.h (include Ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI compliance rules | Irql_Miscellaneous_Function(ndis) |