Search code examples
windowsgraphicsdirectxdriverd3dx

D3DKMTCreateAllocation return code


In a driver I am debugging there is a call to D3DKMTCreateAllocation. The error I receive is int (-1071775735) or 0xc01e0009 which is of type NTSTATUS.

I am trying to figure out this error but cannot find anything. It doesn't map to any of these:

STATUS_SUCCESS  
STATUS_DEVICE_REMOVED  
STATUS_INVALID_PARAMETER  
STATUS_NO_MEMORY  
STATUS_NO_VIDEO_MEMORY  

How can I identify the error?


Solution

  • It looks like you may have stumbled upon an error code (STATUS_GRAPHICS_DRIVER_MISMATCH) that is defined incorrectly in available documentation (see NTSTATUS values, shown as 0x401E0117); but it exists in the header file <ntstatus.h> in the Windows Platform SDK and matches your value.

    My installed copy of the Windows SDK (v7.0, Windows 7 / .NET 3.5sp1) describes it as follows (line 13743):

    //
    // MessageId: STATUS_GRAPHICS_DRIVER_MISMATCH
    //
    // MessageText:
    //
    // The kernel driver detected a version mismatch between it and the user mode driver.
    //
    #define STATUS_GRAPHICS_DRIVER_MISMATCH  ((NTSTATUS)0xC01E0009L)
    

    Other D3D functions have this symbol listed but not the value. Here are links to the documentation, along with the quoted text.

    DxgkDdiOpenAllocation @ MSDN
    STATUS_GRAPHICS_DRIVER_MISMATCH - "The display miniport driver is not compatible with the user-mode display driver that initiated the call to DxgkDdiOpenAllocation (that is, supplied private data to the display miniport driver)."

    DxgkDdiCreateAllocation @ MSDN
    STATUS_GRAPHICS_DRIVER_MISMATCH - "The display miniport driver is not compatible with the user-mode display driver that initiated the call to DxgkDdiCreateAllocation."