CM_Get_DevNode_Property (cfgmgr32)
Last changed: -109.42.113.142

.
Summary
Retrieves a device instance property.

C# Signature:

[DllImport("CfgMgr32.dll", CharSet = CharSet.Unicode)]
public static extern UInt32 CM_Get_DevNode_Property(
     UInt32 dnDevInst,
     ref DEVPROPKEY PropertyKey,
     out DEVPROPTYPE PropertyType,
     IntPtr PropertyBuffer,
     ref UInt32 PropertyBufferSize,
     UInt32 ulFlags);
[DllImport("CfgMgr32.dll", CharSet = CharSet.Unicode)]
public static extern UInt32 CM_Get_DevNode_Property(
     UInt32 dnDevInst,
     ref DEVPROPKEY PropertyKey,
     out DEVPROPTYPE PropertyType,
     StringBuilder PropertyBuffer,
     ref UInt32 PropertyBufferSize,
     UInt32 ulFlags);

Macros:

static void DEFINE_DEVPROPKEY(out DEVPROPKEY key, UInt32 l, UInt16 w1, UInt16 w2, Byte b1, Byte b2, Byte b3, Byte b4, Byte b5, Byte b6, Byte b7, Byte b8, DEVPROPID pid)
{
     key.fmtid = new Guid(l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8);
     key.pid = pid;
}

User-Defined Types:

struct DEVPROPKEY {
     public Guid guid;
     public UInt32 pid;
}

Tips & Tricks:

Property Keys are defined in devpkey.h (https://github.com/tpn/winsdk-10/blob/master/Include/10.0.16299.0/shared/devpkey.h)

Sample Code:

Documentation