SetupDiCreateDeviceInterfaceA 函数 (setupapi.h)

SetupDiCreateDeviceInterface 函数在本地系统或远程系统上注册设备接口。

语法

WINSETUPAPI BOOL SetupDiCreateDeviceInterfaceA(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PSP_DEVINFO_DATA          DeviceInfoData,
  [in]            const GUID                *InterfaceClassGuid,
  [in, optional]  PCSTR                     ReferenceString,
  [in]            DWORD                     CreationFlags,
  [out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

参数

[in] DeviceInfoSet

设备信息的句柄。 此集包含一个设备信息元素,该元素表示要为其注册接口的设备。 此句柄通常由 SetupDiGetClassDevs返回。

[in] DeviceInfoData

指向 SP_DEVINFO_DATA 结构的指针,该结构指定 DeviceInfoSet中的设备信息元素。

[in] InterfaceClassGuid

指向指定新接口的接口类的类 GUID 的指针。

[in, optional] ReferenceString

指向提供引用字符串的 NULL 终止字符串的指针。 此指针是可选的,可以 NULL。 引用字符串仅由少数总线驱动程序使用,这些驱动程序将设备接口用作按需创建的软件设备的占位符。

[in] CreationFlags

保留。 必须为零。

[out, optional] DeviceInterfaceData

指向调用方初始化 SP_DEVICE_INTERFACE_DATA 结构的指针,用于接收有关新设备接口的信息。 此指针是可选的,可以 NULL。 如果提供结构,调用方必须在调用此函数之前将此结构的 cbSize 成员设置为 sizeof(SP_DEVICE_INTERFACE_DATA。 有关详细信息,请参阅以下 备注 部分。

返回值

SetupDiCreateDeviceInterface 返回 true true(如果函数已完成且没有错误)。 如果函数以错误完成,则返回 FALSE,可以通过调用 getLastError来检索失败的错误代码。

言论

此函数的调用方必须是 Administrators 组的成员。

SetupDiCreateDeviceInterface 注册设备的接口。 如果设备有多个接口,请为每个要注册的接口调用一次此函数。

如果此函数成功注册与指定设备信息元素相对应的设备的接口,它还会将接口添加到与指定设备信息集中的设备信息元素关联的接口列表中。

在应用程序和其他系统组件可以使用已注册接口之前,接口必须由设备的驱动程序启用。

此函数为新设备接口创建注册表项。 此函数的调用方可以使用 SetupDiOpenDeviceInterfaceRegKey访问此密钥下的非易失性存储。

如果 SetupDiCreateDeviceInterface 成功创建新的设备接口,但 DeviceInterfaceData 参数中的调用方提供的缓冲区无效,此函数将返回 FALSE,后续调用 GetLastError 将返回ERROR_INVALID_USER_BUFFER。 但是,该函数会创建并注册新的设备接口。

注意

setupapi.h 标头将 SetupDiCreateDeviceInterface 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Microsoft Windows 2000 及更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Setupapi.lib

另请参阅

SetupDiOpenDeviceInterfaceRegKey

SetupDiRemoveDeviceInterface