我在C#中使用此函数SetupDiGetDeviceRegistryProperty
来查询硬件ID并知道为数据分配多大的缓冲区。但我在`SPDRP_HARDWAREID收到错误。错误信息是
“当前上下文中不存在名称”SPDRP_HARDWAREID“。
我尝试将SPDRP_HARDWAREID
声明为enum
,但它没有用。
有人有想法吗?
答案 0 :(得分:1)
如果您只想使用hardwareid函数,只需输入0x00000001并忘记变量名称。还记得让其他参数类型有效,你的声明是错误的,你应该使用它:
[DllImport("setupapi.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool SetupDiGetDeviceRegistryProperty(
IntPtr DeviceInfoSet,
ref SP_DEVINFO_DATA DeviceInfoData,
uint Property,
out UInt32 PropertyRegDataType,
byte[] PropertyBuffer,
uint PropertyBufferSize,
out UInt32 RequiredSize
);