Win32 API:CM_Open_Class_KeyW 函数(Cfgmgr32.h)
CM_Open_Class_KeyW 函数是 Win32 API 中 Cfgmgr32.h 头文件中的一个函数,用于打开指定设备类的注册表项。这是 CM_Open_Class_Key 函数的 Unicode 版本。以下是 CM_Open_Class_KeyW 函数的一般格式和参数说明:CMAPI CONFIGRET CM_Open_Class_KeyW( LPGUID ClassGuid, LPCWSTR pszClassName, REGSAM samDesired, ULONG ulOptions, HMACHINE hMachine); ClassGuid: 一个指向 GUID 结构的指针,表示设备类的唯一标识符。 pszClassName: 指向以 NULL 结尾的 Unicode 字符串的指针,表示设备类的名称。 samDesired: 注册表项的访问权限,可以是 KEY_READ、KEY_WRITE 等标志的组合。 ulOptions: 控制函数行为的标志,可以是 0 或以下之一: - CM_REGISTRY_HARDWARE...
Win32 API:CM_Open_Class_KeyA 函数(Cfgmgr32.h)
CM_Open_Class_KeyA 函数是 Win32 API 中 Cfgmgr32.h 头文件中的一个函数,用于打开指定设备类的注册表项。这是 CM_Open_Class_Key 函数的 ANSI 版本。以下是 CM_Open_Class_KeyA 函数的一般格式和参数说明:CMAPI CONFIGRET CM_Open_Class_KeyA( LPGUID ClassGuid, LPCSTR pszClassName, REGSAM samDesired, ULONG ulOptions, HMACHINE hMachine); ClassGuid: 一个指向 GUID 结构的指针,表示设备类的唯一标识符。 pszClassName: 指向以 NULL 结尾的 ANSI 字符串的指针,表示设备类的名称。 samDesired: 注册表项的访问权限,可以是 KEY_READ、KEY_WRITE 等标志的组合。 ulOptions: 控制函数行为的标志,可以是 0 或以下之一: - CM_REGISTRY_HARDWARE: 打开硬件...
Win32 API:CM_Move_DevNode 函数(Cfgmgr32.h)
CM_Move_DevNode 函数是 Win32 API 中 Cfgmgr32.h 头文件中的一个函数,用于移动设备节点到指定的位置。以下是 CM_Move_DevNode 函数的一般格式和参数说明:CMAPI CONFIGRET CM_Move_DevNode( DEVINST dnFromDevInst, DEVINST dnToDevInst, ULONG ulFlags); dnFromDevInst: 指定要移动的设备节点的句柄。 dnToDevInst: 指定设备节点要移动到的目标位置的设备节点的句柄。 ulFlags: 控制函数行为的标志,可以是 0 或以下之一: - CM_MOVE_NO_RECONNECT: 禁止重新连接到硬件的标志。 - CM_MOVE_RECONNECT: 允许重新连接到硬件的标志。函数返回一个 CONFIGRET 类型的值,表示操作的结果。常见的返回值包括 CR_SUCCESS 表示成功,其他值表示错误的原因。这个函数的主要目的是将一个设备节点移动到另一个位置。移动设备节点通常用于重新安装设备或者更改设备的...
Win32 API:CM_Modify_Res_Des 函数(Cfgmgr32.h)
CM_Modify_Res_Des 函数是 Win32 API 中 Cfgmgr32.h 头文件中的一个函数,用于修改资源描述符(Resource Descriptor)。资源描述符是与设备和驱动程序有关的资源信息的一种表示。以下是 CM_Modify_Res_Des 函数的一般格式和参数说明:CMAPI CONFIGRET CM_Modify_Res_Des( PRES_DES prdResDes, RESOURCEID ResourceID, PCVOID ResourceData, ULONG ResourceLen, ULONG ulFlags); prdResDes: 指向资源描述符的指针,通过此参数返回修改后的资源描述符。 ResourceID: 要修改的资源类型标识符。 ResourceData: 指向包含新资源数据的缓冲区的指针。 ResourceLen: 新资源数据的长度。 ulFlags: 控制函数行为的标志,可以是 0 或以下之一: - CM_MODIFY_RES_DES_MATCH_ALLOCID:...
Win32 API:CM_Locate_DevNodeW 函数(Cfgmgr32.h)
CM_Locate_DevNodeW 函数是 Cfgmgr32.h 头文件中的 Win32 API 函数之一,用于定位设备节点。这个函数是 CM_Locate_DevNodeA 函数的 Unicode 版本。以下是 CM_Locate_DevNodeW 函数的一般格式和参数说明:CMAPI CONFIGRET CM_Locate_DevNodeW( PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags); pdnDevInst: 一个指向 DEVINST 数据类型的指针,用于接收设备节点的句柄。 pDeviceID: 一个指向设备标识符的指针,它是一个字符串,标识要定位的设备节点。这是一个 Unicode 字符串。 ulFlags: 控制函数行为的标志。可以是 0 或者以下之一: - CM_LOCATE_DEVNODE_NORMAL: 标准查找。 - CM_LOCATE_DEVNODE_PHANTOM: 查找虚拟设备节点。函数返回一个 CONFIGRET 类型的值,表示操作的结果。常见的返回值包括...
Win32 API:CM_Locate_DevNodeA 函数(Cfgmgr32.h)
CM_Locate_DevNodeA 函数是 Win32 API 中的一个函数,位于 Cfgmgr32.h 头文件中。这个函数用于定位设备节点(Device Node)。设备节点是设备管理器中的一个概念,代表系统中的硬件设备。以下是 CM_Locate_DevNodeA 函数的一般格式和参数说明:CMAPI CONFIGRET CM_Locate_DevNodeA( PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags); pdnDevInst: 一个指向 DEVINST 数据类型的指针,用于接收设备节点的句柄。 pDeviceID: 一个指向设备标识符的指针,它是一个字符串,标识要定位的设备节点。这是一个 ANSI 字符串。 ulFlags: 控制函数行为的标志。可以是 0 或者以下之一: - CM_LOCATE_DEVNODE_NORMAL: 标准查找。 - CM_LOCATE_DEVNODE_PHANTOM: 查找虚拟设备节点。函数返回一个 CONFIGRET 类型的值,表示操作的结果。常见...
Win32 API:CM_Locate_DevNode_ExW 函数(Cfgmgr32.h)
CM_Locate_DevNode_ExW 函数是 Win32 API 中的一个函数,也位于 Cfgmgr32.h 头文件中。该函数是 CM_Locate_DevNode_ExA 函数的宽字符版本,用于在配置管理器数据库中定位设备节点。以下是该函数的基本信息:CMAPI CONFIGRET WINAPI CM_Locate_DevNode_ExW( _Out_ PDEVINST pdnDevInst, _In_ DEVINSTID_W pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine);参数解释: pdnDevInst: 用于接收设备实例句柄的指针。 pDeviceID: 指定设备实例标识符的宽字符字符串。可以是设备实例 ID 或者设备全局唯一标识符 (GUID) 的字符串。 ulFlags: 指定函数的行为标志。 hMachine: 一个配置管理器数据库句柄,用于指定要操作的计算机。可以传入 NULL 表示本地计算机。函数返回值是 CONFIGRET ...
Win32 API:CM_Locate_DevNode_ExA 函数(Cfgmgr32.h)
CM_Locate_DevNode_ExA 函数是 Win32 API 中的一个函数,位于 Cfgmgr32.h 头文件中。该函数用于在配置管理器数据库中定位设备节点。以下是该函数的基本信息:CMAPI CONFIGRET WINAPI CM_Locate_DevNode_ExA( _Out_ PDEVINST pdnDevInst, _In_ DEVINSTID_A pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine);参数解释: pdnDevInst: 用于接收设备实例句柄的指针。 pDeviceID: 指定设备实例标识符的字符串。可以是设备实例 ID 或者设备全局唯一标识符 (GUID) 的字符串。 ulFlags: 指定函数的行为标志。 hMachine: 一个配置管理器数据库句柄,用于指定要操作的计算机。可以传入 NULL 表示本地计算机。函数返回值是 CONFIGRET 类型,表示函数执行的结果。请注意,此函数的参数中包含了 ANSI 版本的字...
Win32 API:CM_Get_Sibling 函数(Cfgmgr32.h)
CM_Get_Sibling 函数是 Win32 API 中的一个函数,用于获取指定设备实例的同级设备实例。以下是该函数的一般声明:CMAPI CONFIGRET CM_Get_Sibling( PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags);参数说明: pdnDevInst: 输出参数,用于接收同级设备实例的指针。 dnDevInst: 输入参数,指定要查询同级设备的设备实例。 ulFlags: 输入参数,用于指定标志,控制函数的行为。函数返回 CR_SUCCESS 表示成功,其他返回值表示出现错误。成功调用后,pdnDevInst 将包含指定设备实例的同级设备实例。这个函数通常与其他配置管理器函数一起使用,例如获取设备信息、配置资源等。请注意,使用这些底层函数需要小心,并且根据具体情况处理错误码和返回值。如果可能的话,也可以考虑使用更高层次的 Windows API 或设备管理器 API 来简化操作。
Win32 API:CM_Get_Parent 函数(Cfgmgr32.h)
CM_Get_Parent 函数是 Win32 API 中的一个函数,它用于获取指定设备实例的父设备实例。这个函数通常用于配置管理器(Configuration Manager)相关的操作。以下是该函数的一般声明:CMAPI CONFIGRET CM_Get_Parent( PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags);参数说明: pdnDevInst: 输出参数,用于接收父设备实例的指针。 dnDevInst: 输入参数,指定要查询父设备的设备实例。 ulFlags: 输入参数,用于指定标志,控制函数的行为。函数返回 CR_SUCCESS 表示成功,其他返回值表示出现错误。成功调用后,pdnDevInst 将包含指定设备实例的父设备实例。这个函数通常与其他配置管理器函数一起使用,例如获取设备信息、配置资源等。请注意,使用这些底层函数需要小心,并且根据具体情况处理错误码和返回值。如果可能的话,也可以考虑使用更高层次的 Windows API 或设备管理器 API 来简化操作。
Win32 API:CM_Get_Next_Res_Des_Ex 函数(Cfgmgr32.h)
CM_Get_Next_Res_Des_Ex 函数是 Win32 API 中的一个函数,它用于获取配置管理器中与指定资源描述符相关联的下一个资源描述符。以下是该函数的一般声明:CMAPI CONFIGRET CM_Get_Next_Res_Des_Ex( PRES_DES prd, RESOURCEID ResType, PULONG pulValue, ULONG ulFlags, HMACHINE hMachine);参数说明: prd: 输入参数,指向当前资源描述符的句柄。函数将返回下一个资源描述符的句柄。 ResType: 输入参数,指定资源类型。 pulValue: 输入/输出参数,指定或接收资源的特定标识符。 ulFlags: 输入参数,指定标志,控制函数的行为。 hMachine: 输入参数,指定与配置管理器通信的机器的句柄。可以传递 NULL 来表示本地计算机。函数返回 CR_SUCCESS 表示成功,其他返回值表示出现错误。可以使用 CM_Get_Next_Res_Des_Ex 来迭代资源描述符链表,以获取与设备相关的资源信息。请注...
Win32 API:CM_Get_Next_Res_Des 函数(Cfgmgr32.h)
CM_Get_Next_Res_Des 函数是 Windows 配置管理器 API 中的一个函数,用于获取设备节点的下一个资源描述符。以下是该函数的一般格式:CMAPI CONFIGRET CM_Get_Next_Res_Des( PRES_DES prdResDes, RES_DES rdResDes, RESOURCEID ForResource, PRESOURCEID pResourceID, ULONG ulFlags);参数说明: prdResDes:指向 RES_DES 类型的指针,用于接收下一个资源描述符的句柄。 rdResDes:当前资源描述符的句柄。 ForResource:指定资源的类型。 pResourceID:指向 RESOURCEID 类型的指针,用于接收资源类型的信息。 ulFlags:标志,控制函数的行为。这个函数用于遍历设备节点的资源描述符。通过多次调用此函数,可以获取设备节点的所有资源描述符。以下是一个简单的示例代码:#include <Cfgmgr32.h>void GetNextResDes(DEVINST dnD...
Win32 API:CM_Get_Next_Log_Conf 函数(Cfgmgr32.h)
CM_Get_Next_Log_Conf 函数是 Windows 配置管理器 API 中的一个函数,用于获取设备节点的下一个逻辑配置。以下是该函数的一般格式:CMAPI CONFIGRET CM_Get_Next_Log_Conf( PLOG_CONF plcLogConf, LOG_CONF lcLogConf, ULONG ulFlags);参数说明: plcLogConf:指向 LOG_CONF 类型的指针,用于接收下一个逻辑配置的句柄。 lcLogConf:当前逻辑配置的句柄。 ulFlags:标志,控制函数的行为。这个函数用于遍历设备节点的逻辑配置。通过多次调用此函数,可以获取设备节点的所有逻辑配置。以下是一个简单的示例代码:#include <Cfgmgr32.h>void GetNextLogConf(DEVINST dnDevInst) { LOG_CONF lcLogConf; CONFIGRET cr; // 获取设备节点的第一个逻辑配置 cr = CM_Get_First_Log_Conf(&lcLogC...
Win32 API:CM_Get_Log_Conf_Priority 函数(Cfgmgr32.h)
CM_Get_Log_Conf_Priority 函数是 Windows 配置管理器 API 中的一个函数,用于获取逻辑配置的优先级。以下是该函数的一般格式:CMAPI CONFIGRET CM_Get_Log_Conf_Priority( LOG_CONF lcLogConf, PPRIORITY pPriority, ULONG ulFlags);参数说明: lcLogConf:逻辑配置的句柄。 pPriority:指向 PRIORITY 结构的指针,用于接收逻辑配置的优先级信息。 ulFlags:标志,控制函数的行为。PRIORITY 结构定义如下:typedef struct { ULONG Priority; // 逻辑配置的优先级} PRIORITY, *PPRIORITY;这个函数用于获取逻辑配置的优先级信息。逻辑配置的优先级决定了系统在资源冲突时如何选择逻辑配置。以下是一个简单的示例代码:#include <Cfgmgr32.h>void GetLogConfPriority(LOG_CONF lcLogConf) { PRIORITY pr...
Win32 API:CM_Get_HW_Prof_FlagsW 函数(Cfgmgr32.h)
CM_Get_HW_Prof_FlagsW 函数是 Windows 配置管理器 API 中的一个函数。该函数用于获取硬件配置文件的标志信息。以下是该函数的一般格式:CMAPI CONFIGRET CM_Get_HW_Prof_FlagsW( ULONG ulHardwareProfile, ULONG ulFlags, ULONG *pulValue, HMACHINE hMachine);参数说明: ulHardwareProfile:硬件配置文件的索引。 ulFlags:标志,控制函数的行为。 pulValue:指向 ULONG 类型的指针,用于接收硬件配置文件的标志信息。 hMachine:指定计算机的句柄。这个函数用于获取硬件配置文件的标志信息,返回值包含硬件配置文件的一些状态标志。你可以通过传递不同的硬件配置文件索引来获取不同硬件配置文件的信息。请注意,这是一个 Unicode 版本的函数(以 _W 结尾),因此参数和结构中的字符串都是以宽字符形式表示的。如果你需要使用 ANSI 版本的函数,请查看是否有 CM_Get_HW_Prof_FlagsA 版本的函数。...
Win32 API:CM_Get_Hardware_Profile_InfoW 函数(Cfgmgr32.h)
CM_Get_Hardware_Profile_InfoW 函数是 Windows 配置管理器 API 中的一个函数。该函数用于获取有关系统中硬件配置文件的信息。以下是该函数的一般格式:CMAPI CONFIGRET CM_Get_Hardware_Profile_InfoW( ULONG ulIndex, PHWPROFILEINFO_W pHWProfileInfo, ULONG ulFlags);参数说明: ulIndex:要获取信息的硬件配置文件的索引。 pHWProfileInfo:指向 HWPROFILEINFO_W 结构的指针,用于接收硬件配置文件信息。 ulFlags:标志,控制函数的行为。HWPROFILEINFO_W 结构定义如下:typedef struct { ULONG HWPI_ulHWProfile; // 硬件配置文件索引 WCHAR HWPI_szFriendlyName[MAX_PROFILE_LEN]; // 友好名称 WCHAR HWPI_szAlias[MAX_PATH...
Win32 API:CM_Get_First_Log_Conf 函数(Cfgmgr32.h)
CM_Get_First_Log_Conf 函数是 Win32 API 中的一个函数,位于 Cfgmgr32.h 头文件中。这个函数用于获取设备节点(Device Node)的第一个逻辑配置。以下是该函数的一般格式:CMAPI CONFIGRET CM_Get_First_Log_Conf( PLOG_CONF plcLogConf, DEVINST dnDevInst, ULONG ulFlags);参数说明: plcLogConf:指向 LOG_CONF 类型的指针,用于接收设备节点的第一个逻辑配置。 dnDevInst:设备节点的句柄。 ulFlags:标志,控制函数的行为。这个函数用于获取设备节点的第一个逻辑配置,逻辑配置是设备在系统中的资源配置。可以使用 CM_Get_Next_Log_Conf 函数来获取接下来的逻辑配置。以下是一个简单的示例代码:#include <Cfgmgr32.h>void GetFirstLogConf() { DEVINST dnDevInst; // 设备节点的句柄 LOG_CONF lcLogConf...
Win32 API:CM_Get_DevNode_Status 函数(Cfgmgr32.h)
CM_Get_DevNode_Status 函数是 Win32 API 中的一个函数,位于 Cfgmgr32.h 头文件中。这个函数用于检索设备节点(Device Node)的状态信息。以下是该函数的一般格式:CMAPI CONFIGRET CM_Get_DevNode_Status( PULONG pulStatus, PULONG pulProblemNumber, DEVINST dnDevInst, ULONG ulFlags);参数说明: pulStatus:指向 ULONG 的指针,用于接收设备节点的状态。 pulProblemNumber:指向 ULONG 的指针,用于接收设备节点的问题编号(如果有问题)。 dnDevInst:设备节点的句柄。 ulFlags:标志,控制函数的行为。这个函数用于获取设备节点的状态信息,包括设备是否可用、是否有问题等。根据返回的状态信息,可以判断设备的当前工作状态。以下是一个简单的示例代码:#include <Cfgmgr32.h>void GetDevNodeStatus() {...
Win32 API:CM_Get_DevNode_Registry_PropertyW 函数(Cfgmgr32.h)
CM_Get_DevNode_Registry_PropertyW 函数是 Win32 API 中的一个函数,位于 Cfgmgr32.h 头文件中。这个函数用于检索指定设备节点(Device Node)的注册属性。以下是该函数的一般格式:CMAPI CONFIGRET CM_Get_DevNode_Registry_PropertyW( DEVINST dnDevInst, ULONG ulProperty, PULONG pulRegDataType, PVOID Buffer, PULONG pulLength, ULONG ulFlags, HMACHINE hMachine);参数说明: dnDevInst:设备节点的句柄。 ulProperty:要检索的注册属性。 pulRegDataType:指向 ULONG 的指针,用于接收注册数据的类型。 Buffer:指向接收注册数据的缓冲区。 pulLength:指向 ULONG 的指针,用于指定缓冲区大小和接收实际数据的大小。 ulF...
Win32 API:CM_Get_DevNode_Registry_PropertyA 函数(Cfgmgr32.h)
在 Windows 的 Cfgmgr32.h 头文件中,CM_Get_DevNode_Registry_PropertyA 函数用于获取设备节点(Device Node)的注册表属性,其中 A 表示 ANSI 版本。以下是该函数的简要说明:CMAPI CONFIGRET CM_Get_DevNode_Registry_PropertyA( DEVINST dnDevInst, ULONG ulProperty, PULONG pulRegDataType, PVOID Buffer, PULONG pulLength, ULONG ulFlags);参数说明: dnDevInst: 设备实例的句柄。 ulProperty: 表示注册表属性的标识符。 pulRegDataType: 一个指向 ULONG 类型的变量的指针,用于接收属性值的数据类型。 Buffer: 一个指向缓冲区的指针,用于接收属性值的数据。 pulLength: 一个指向 ULONG 类型的变量的指针,表示缓...