-2

SetupDiGetDeviceRegistryProperty在 C# 中使用这个函数来查询硬件 ID 并知道要为数据分配多大的缓冲区。但是我在`SPDRP_HARDWAREID. 错误信息是

“当前上下文中不存在名称“SPDRP_HARDWAREID”。

我试过声明SPDRP_HARDWAREIDenum,但没有奏效。

有人知道吗?

4

1 回答 1

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
    );
于 2012-09-13T17:37:28.687 回答