BUGCODE_ID_DRIVER
The BUGCODE_ID_DRIVER bug check has a value of 0x000000D2. This indicates that a problem occurred with an NDIS driver.
Important
This topic is for programmers. If you are a customer who has received a blue screen error code while using your computer, see Troubleshoot blue screen errors.
BUGCODE_ID_DRIVER Parameters
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Message and Cause |
---|---|---|---|---|
Address of the miniport block |
Number of bytes requested |
0 |
1 |
Allocating shared memory at raised IRQL. A driver called NdisMAllocateSharedMemory with IRQL >= DISPATCH_LEVEL. |
Address of the miniport block |
The Status value submitted to NdisMResetComplete |
The AddressingReset value submitted to NdisMResetComplete |
0 |
Completing reset when one is not pending. A driver called NdisMResetComplete, but no reset was pending. |
Address of the miniport block |
Memory page containing address being freed |
Address of shared memory signature |
Virtual address being freed |
Freeing shared memory not allocated. A driver called NdisMFreeSharedMemory or NdisMFreeSharedMemoryAsync with an address that is not located in NDIS shared memory. |
Address of the miniport block |
Address of the packet that is incorrectly included in the packet array |
Address of the packet array |
Number of packets in the array |
Indicating packet not owned by it. The miniport's packet array is corrupt. |
Address of the MiniBlock |
Address of the driver object |
0 |
0 |
NdisAddDevice: AddDevice called with a MiniBlock that is not on the NdisMiniDriverList. |
Address of the MiniBlock |
The MiniBlock's reference count |
0 |
0 |
NdisMUnload: MiniBlock is getting unloaded but it is still on NdisMiniDriverList. |
Address of the miniport block |
Memory page |
Wrapper context |
Address of shared memory signature |
Overwrote past allocated shared memory. The address being written to is not located in NDIS shared memory. |
In the following instances of this bug check, the meaning of the parameters depends on the message and on the value of Parameter 4.
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Message and Cause |
---|---|---|---|---|
Address of the miniport block |
Address of the miniport interrupt |
Address of the miniport timer queue |
1 |
Unloading without deregistering interrupt. A miniport driver failed its initialization without deregistering its interrupt. |
Address of the miniport block |
Address of the miniport timer queue |
Address of the miniport interrupt |
2 |
Unloading without deregistering interrupt. A miniport driver did not deregister its interrupt during the halt process. |
Address of the miniport block |
Address of the miniport interrupt |
Address of the miniport timer queue |
1 |
Unloading without deregistering timer. A miniport driver failed its initialization without successfully canceling all its timers. |
Address of the miniport block |
Address of the miniport timer queue |
Address of the miniport interrupt |
2 |
Unloading without deregistering timer. A miniport driver halted without successfully canceling all its timers. |
Remarks
This bug check code only occurs on Windows 2000 and Windows XP. In Windows Server 2003 and later, the corresponding code is bug check 0x7C (BUGCODE_NDIS_DRIVER).
On the checked build of Windows, only the Allocating Shared Memory at Raised IRQL and Completing Reset When One is Not Pending instances of this bug check can occur. All the other instances of bug check 0xD2 are replaced with ASSERTs. See Breaking Into the Debugger for details.
Note
Checked builds were available on older versions of Windows, before Windows 10 version 1803. Use tools such as Driver Verifier and GFlags to check driver code in later versions of Windows.
About “What is” service
Many of users are faced with the problem of interpreting errors that occur during the work of operating systems. In some cases, the operating system reports that an error has occurred and displays only an integer error code value. Often it is difficult to even roughly understand the cause of the error from the information given out. Our “what is” service contains a database of errors in Windows, Linux, Macos and Solaris operating systems. The database contains tens of thousands of values. In most cases, the online service will be able to help with the definition of the short name of the error and its detailed description.
Categories
Current version of service supports following types of error and status codes:
NTSTATUS | Many kernel-mode standard driver routines and driver support routines use the NTSTATUS type for return values. Additionally, drivers provide an NTSTATUS-typed value in an IRP’s IO_STATUS_BLOCK structure when completing IRPs. The NTSTATUS type is defined in Ntdef.h, and system-supplied status codes are defined in Ntstatus.h. |
Win32 error | Win32 error codes MUST be in the range 0x0000 to 0xFFFF, although Win32 error codes can be used both in 16-bit fields (such as within the HRESULT type specified in section 2.1) as well as 32-bit fields. Most values also have a default message defined, which can be used to map the value to a human-readable text message; when this is done, the Win32 error code is also known as a message identifier. |
HRESULT | HRESULT is a data type used in Windows operating systems, and the earlier IBM/Microsoft OS/2 operating system, to represent error conditions, and warning conditions. The original purpose of HRESULTs was to formally lay out ranges of error codes for both public and Microsoft internal use in order to prevent collisions between error codes in different subsystems of the OS/2 operating system. HRESULTs are numerical error codes. Various bits within an HRESULT encode information about the nature of the error code, and where it came from. HRESULT error codes are most commonly encountered in COM programming, where they form the basis for a standardized COM error handling convention. |
HTTP Status Code | Hypertext Transfer Protocol (HTTP) response status codes. Status codes are issued by a server in response to a client’s request made to the server. It includes codes from IETF Request for Comments (RFCs), other specifications, and some additional codes used in some common applications of the HTTP. The first digit of the status code specifies one of five standard classes of responses. The message phrases shown are typical, but any human-readable alternative may be provided. |
errno | Integer value, which is returned by system calls and some library functions in the event of an error to indicate what went wrong. errno is defined by the ISO C standard to be a modifiable lvalue of type int, and must not be explicitly declared; errno may be a macro. errno is thread-local; setting it in one thread does not affect its value in any other thread. |
Kern Return | Apple Kernel return codes. |
Ipp Status | The IppStatus constant enumerates the status values returned by the Intel IPP functions, indicating whether the operation is error-free. |
Source code
The service is based on the open source library AllStat. Its sources are available on our git server. We will be grateful for your participation in the finalization of the library and ideas for the development of the service. You can also download ErrorLookup libraries and utilities from our site.