Win32 API:CM_Set_Device_Interface_PropertyW 函数(Cfgmgr32.h)
CM_Set_Device_Interface_PropertyW 函数是 Windows 操作系统中的 Win32 API,属于 Configuration Manager API,用于设置设备接口属性的值。函数使用宽字符版本的字符串。以下是函数的基本定义:CMAPI CONFIGRET CM_Set_Device_Interface_PropertyW( LPCWSTR pszDeviceInterface, CONST DEVPROPKEY *pPropertyKey, DEVPROPTYPE PropertyType, CONST PBYTE pbProperty, ULONG cbProperty, ULONG ulFlags);参数说明: pszDeviceInterface:设备接口的路径名。 pPropertyKey:指定要设置的属性键。 PropertyType:指定属性的类型。 pbProperty:包含要设置的属性值的缓冲区。 cbProperty:pbProperty 缓冲区的大...
Win32 API:CM_Set_Class_Registry_PropertyW 函数(Cfgmgr32.h)
CM_Set_Class_Registry_PropertyW 函数是 Windows 操作系统中的 Win32 API,属于 Configuration Manager API,用于设置设备类注册表属性的值。函数使用宽字符版本的字符串。以下是函数的基本定义:CMAPI CONFIGRET CM_Set_Class_Registry_PropertyW( LPGUID ClassGuid, ULONG ulProperty, PCVOID Buffer, ULONG ulLength, ULONG ulFlags, HMACHINE hMachine);参数说明: ClassGuid:设备类的 GUID。 ulProperty:注册表属性的标识符,用于指定要设置的属性。 Buffer:包含要设置的属性值的缓冲区。 ulLength:Buffer 缓冲区的大小。 ulFlags:标志位,用于指定操作的选项。 hMachine:指定要操作的机器句柄。通常可以传入 NULL,表示本地...
Win32 API:CM_Set_Class_Registry_PropertyA 函数(Cfgmgr32.h)
CM_Set_Class_Registry_PropertyA 函数是 Windows 操作系统中的 Win32 API,属于 Configuration Manager API,用于设置设备类注册表属性的值。函数使用 ANSI 字符集的字符串。以下是函数的基本定义:CMAPI CONFIGRET CM_Set_Class_Registry_PropertyA( LPGUID ClassGuid, ULONG ulProperty, PCVOID Buffer, ULONG ulLength, ULONG ulFlags, HMACHINE hMachine);参数说明: ClassGuid:设备类的 GUID。 ulProperty:注册表属性的标识符,用于指定要设置的属性。 Buffer:包含要设置的属性值的缓冲区。 ulLength:Buffer 缓冲区的大小。 ulFlags:标志位,用于指定操作的选项。 hMachine:指定要操作的机器句柄。通常可以传入 NULL,...
Win32 API:CM_Request_Device_EjectW 函数(Cfgmgr32.h)
CM_Request_Device_EjectW 函数是 Windows 操作系统中的 Win32 API,也属于 Configuration Manager API,与CM_Request_Device_EjectA类似,用于请求弹出(eject)指定设备实例的媒体。不同之处在于函数使用宽字符版本的字符串。以下是函数的基本定义:CMAPI CONFIGRET CM_Request_Device_EjectW( DEVINST dnDevInst, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, ULONG ulNameLength, ULONG ulFlags);参数说明: dnDevInst:指定要弹出媒体的设备实例句柄。 pVetoType:如果设备无法弹出,则此参数返回一个 PNP_VETO_TYPE 类型的值,指示拒绝的原因。 pszVetoName:如果设备无法弹出,此参数返回一个字符串,表示拒绝的设备名称。 ulNameLength:指定 pszVetoName 缓冲区...
Win32 API:CM_Request_Device_EjectA 函数(Cfgmgr32.h)
CM_Request_Device_EjectA 函数是 Windows 操作系统中的 Win32 API,也属于 Configuration Manager API,用于请求弹出(eject)指定设备实例的媒体。这个函数使用 ANSI 字符集的字符串。以下是函数的基本定义:CMAPI CONFIGRET CM_Request_Device_EjectA( DEVINST dnDevInst, PPNP_VETO_TYPE pVetoType, LPSTR pszVetoName, ULONG ulNameLength, ULONG ulFlags);参数说明: dnDevInst:指定要弹出媒体的设备实例句柄。 pVetoType:如果设备无法弹出,则此参数返回一个 PNP_VETO_TYPE 类型的值,指示拒绝的原因。 pszVetoName:如果设备无法弹出,此参数返回一个字符串,表示拒绝的设备名称。 ulNameLength:指定 pszVetoName 缓冲区的大小。 ulFlags:标志位,用于指定操作的选项。函...
Win32 API:CM_Request_Device_Eject_ExW 函数(Cfgmgr32.h)
CM_Request_Device_Eject_ExW 函数是 Windows 操作系统中的 Win32 API,也属于 Configuration Manager API,与CM_Request_Device_Eject_ExA类似,用于请求弹出(eject)指定设备实例的媒体。不同之处在于函数使用宽字符版本的字符串。以下是函数的基本定义:CMAPI CONFIGRET CM_Request_Device_Eject_ExW( DEVINST dnDevInst, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, ULONG ulNameLength, ULONG ulFlags, HMACHINE hMachine);参数说明: dnDevInst:指定要弹出媒体的设备实例句柄。 pVetoType:如果设备无法弹出,则此参数返回一个 PNP_VETO_TYPE 类型的值,指示拒绝的原因。 pszVetoName:如果设备无法弹出,此参数返回一个字符串,表示拒绝的设备名称...
Win32 API:CM_Request_Device_Eject_ExA 函数(Cfgmgr32.h)
CM_Request_Device_Eject_ExA 函数是 Windows 操作系统中的 Win32 API,也属于 Configuration Manager API,用于请求弹出(eject)指定设备实例的媒体。该函数可以用于弹出可移动设备,例如 USB 驱动器。以下是函数的基本定义:CMAPI CONFIGRET CM_Request_Device_Eject_ExA( DEVINST dnDevInst, PPNP_VETO_TYPE pVetoType, LPSTR pszVetoName, ULONG ulNameLength, ULONG ulFlags, HMACHINE hMachine);参数说明: dnDevInst:指定要弹出媒体的设备实例句柄。 pVetoType:如果设备无法弹出,则此参数返回一个 PNP_VETO_TYPE 类型的值,指示拒绝的原因。 pszVetoName:如果设备无法弹出,此参数返回一个字符串,表示拒绝的设备名称。 ulNameLength:指定 pszVeto...
Win32 API:CM_Remove_SubTree_Ex 函数(Cfgmgr32.h)
CM_Remove_SubTree_Ex 函数是 Windows 操作系统中的一个 Win32 API,它属于 Configuration Manager API,用于移除设备管理器中指定子树(subtree)的配置信息。以下是函数的基本定义:CMAPI CONFIGRET CM_Remove_SubTree_Ex( DEVINST dnAncestor, ULONG ulFlags, HMACHINE hMachine);参数说明: dnAncestor:指定要移除的子树的祖先设备实例句柄。 ulFlags:标志位,用于指定操作的选项。 hMachine:指定要操作的机器句柄。通常可以传入 NULL,表示本地机器。函数返回一个 CONFIGRET 类型的值,表示操作的结果状态。这个函数的作用是删除指定设备实例的子树配置信息,包括该设备实例及其所有子设备的配置信息。参数中的 ulFlags 可以用来指定一些额外的选项,例如是否强制删除等。请注意,使用这样的 API 需要小心,确保你了解它的具体行为,以免对系统产生不良影响。在使用之前,最好查阅相关的...
Win32 API:CM_Remove_SubTree 函数(Cfgmgr32.h)
CM_Remove_SubTree 函数是 Windows 设备管理 API 中的函数,用于移除设备管理器中的指定子树。以下是该函数的基本信息:CMAPI CONFIGRET CM_Remove_SubTree( DEVINST dnAncestor, ULONG ulFlags);参数说明: dnAncestor:指定待移除的子树的祖先设备实例。 ulFlags:指定标志,用于控制移除的行为。函数返回一个 CONFIGRET 类型的错误代码,如果操作成功则返回 CR_SUCCESS。使用这类设备管理函数需要小心谨慎,确保在调用之前充分了解其行为,并在必要时备份系统或者设备管理器配置。CM_Remove_SubTree 函数用于移除指定设备实例及其所有子设备实例。
Win32 API:CM_Register_Notification 函数(Cfgmgr32.h)
CM_Register_Notification 函数是 Windows 设备管理 API 中的函数,用于注册设备管理器的通知。以下是该函数的基本信息:CMAPI CONFIGRET CM_Register_Notification( PCM_NOTIFY_FILTER pFilter, PVOID pContext, PCM_NOTIFY_CALLBACK pCallBack, PHCMNOTIFICATION phNotification);参数说明: pFilter:指向 CM_NOTIFY_FILTER 结构的指针,用于指定通知的过滤条件。 pContext:用于传递上下文信息的指针,将在通知回调函数中使用。 pCallBack:指向通知回调函数的指针,该函数将在满足过滤条件时被调用。 phNotification:用于接收通知句柄的指针。函数返回一个 CONFIGRET 类型的错误代码,如果操作成功则返回 CR_SUCCESS。请注意,通知回调函数 PCM_NOTIFY_CALLBACK 的原型如下:typedef ULONG (CALLBA...
Win32 API:CM_Register_Device_InterfaceW 函数(Cfgmgr32.h)
CM_Register_Device_InterfaceW 函数用于向系统注册设备接口。以下是该函数的基本信息:CMAPI CONFIGRET CM_Register_Device_InterfaceW( DEVINST dnDevInst, LPGUID InterfaceClassGuid, PCWSTR pszReference, PWSTR pszDeviceInterface, ULONG ulFlags);参数说明: dnDevInst:设备实例标识符,标识要注册接口的设备。 InterfaceClassGuid:指定设备接口的类 GUID。 pszReference:指定设备接口的引用字符串。 pszDeviceInterface:用于接收设备接口路径的缓冲区。 ulFlags:指定标志,用于控制注册的行为。函数返回一个 CONFIGRET 类型的错误代码,如果操作成功则返回 CR_SUCCESS。这个函数是使用 Unicode 字符集的版本。如果你的应用程序使用的是 ANSI 字...
Win32 API:CM_Register_Device_InterfaceA 函数(Cfgmgr32.h)
CM_Register_Device_InterfaceA 函数用于向系统注册设备接口。以下是该函数的基本信息:CMAPI CONFIGRET CM_Register_Device_InterfaceA( DEVINST dnDevInst, LPGUID InterfaceClassGuid, PCSTR pszReference, PSTR pszDeviceInterface, ULONG ulFlags);参数说明: dnDevInst:设备实例标识符,标识要注册接口的设备。 InterfaceClassGuid:指定设备接口的类 GUID。 pszReference:指定设备接口的引用字符串。 pszDeviceInterface:用于接收设备接口路径的缓冲区。 ulFlags:指定标志,用于控制注册的行为。函数返回一个 CONFIGRET 类型的错误代码,如果操作成功则返回 CR_SUCCESS。请注意,CM_Register_Device_InterfaceA 函数是使用 AN...
Win32 API:CM_Reenumerate_DevNode 函数(Cfgmgr32.h)
CM_Reenumerate_DevNode 函数是 Windows 设备管理 API 中的一个函数,用于通知设备管理器重新枚举指定设备节点及其子树。以下是该函数的基本信息:CMAPI CONFIGRET CM_Reenumerate_DevNode( DEVINST dnDevInst, ULONG ulFlags);参数说明: dnDevInst:指定设备实例,将其及其子树进行重新枚举。 ulFlags:指定标志,用于控制重新枚举的行为。函数返回一个 CONFIGRET 类型的错误代码,如果操作成功则返回 CR_SUCCESS。使用这类设备管理函数需要小心谨慎,确保在调用之前充分了解其行为,并在必要时备份系统或者设备管理器配置。CM_Reenumerate_DevNode 可以用于通知系统重新扫描指定设备及其子树,例如,在设备配置发生变化时触发更新。
Win32 API:CM_Query_Resource_Conflict_List 函数(Cfgmgr32.h)
在 Windows 的设备管理 API 中,CM_Query_Resource_Conflict_List 函数用于查询设备资源冲突列表。以下是该函数的基本信息:CMAPI CONFIGRET CM_Query_Resource_Conflict_List( PCONFLICT_LIST pclConflictList, DEVINST dnDevInst, RESOURCEID ResourceID, PVOID ResourceData, ULONG ResourceLen, ULONG ulFlags, HMACHINE hMachine);参数说明: pclConflictList:指向 CONFLICT_LIST 结构的指针,该结构用于接收冲突信息。 dnDevInst:指定设备实例。 ResourceID:指定资源标识符,用于标识要查询的资源类型。 ResourceData:指向资源数据的指针。 ResourceLen:指定资源数据的长度。 ulFlags:指定标志,用于控...
Win32 API:CM_Query_And_Remove_SubTreeW 函数(Cfgmgr32.h)
CM_Query_And_Remove_SubTreeW 函数是 Windows 操作系统中的一个设备管理函数,用于查询并移除设备管理器中指定子树的配置信息。这个函数是对 Unicode 字符集的支持版本,与之前提到的 CM_Query_And_Remove_SubTreeA 函数相比。以下是关于 CM_Query_And_Remove_SubTreeW 函数的基本信息:DWORD CM_Query_And_Remove_SubTreeW( DEVINST dnAncestor, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, ULONG ulNameLength, ULONG ulFlags);参数说明: dnAncestor:指定待查询和移除的子树的祖先设备实例。 pVetoType:指向 PNP_VETO_TYPE 变量的指针,用于接收阻止移除操作的原因类型。 pszVetoName:指向接收阻止移除操作的设备名的缓冲区的指针。 ulNameLength:指定 pszV...
Win32 API:CM_Query_And_Remove_SubTreeA 函数(Cfgmgr32.h)
CM_Query_And_Remove_SubTreeA 函数也是 Windows 操作系统中的一个设备管理函数,用于查询并移除设备管理器中指定子树的配置信息。与之前提到的 CM_Query_And_Remove_SubTree_ExW 函数相比,该函数是对 ANSI 字符集的支持版本。以下是关于 CM_Query_And_Remove_SubTreeA 函数的基本信息:DWORD CM_Query_And_Remove_SubTreeA( DEVINST dnAncestor, PPNP_VETO_TYPE pVetoType, LPSTR pszVetoName, ULONG ulNameLength, ULONG ulFlags);参数说明: dnAncestor:指定待查询和移除的子树的祖先设备实例。 pVetoType:指向 PNP_VETO_TYPE 变量的指针,用于接收阻止移除操作的原因类型。 pszVetoName:指向接收阻止移除操作的设备名的缓冲区的指针。 ulNameLength:指定 pszV...
Win32 API:CM_Query_And_Remove_SubTree_ExW 函数(Cfgmgr32.h)
CM_Query_And_Remove_SubTree_ExW 函数是 Windows 操作系统中的一个函数,属于 Win32 API 中的设备管理部分。该函数用于查询并移除设备管理器中指定子树的配置信息。以下是关于该函数的一些基本信息:DWORD CM_Query_And_Remove_SubTree_ExW( DEVINST dnAncestor, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, ULONG ulNameLength, ULONG ulFlags, HMACHINE hMachine);参数说明: dnAncestor:指定待查询和移除的子树的祖先设备实例。 pVetoType:指向 PNP_VETO_TYPE 变量的指针,用于接收阻止移除操作的原因类型。 pszVetoName:指向接收阻止移除操作的设备名的缓冲区的指针。 ulNameLength:指定 pszVetoName 缓冲区的大小。 ulFlags:指定标志,用于控制查询和移除的行...
Win32 API:CM_Open_DevNode_Key 函数(Cfgmgr32.h)
CM_Open_DevNode_Key 函数是 Win32 API 中 Cfgmgr32.h 头文件中的一个函数,用于打开设备节点的注册表项。以下是 CM_Open_DevNode_Key 函数的一般格式和参数说明:CMAPI CONFIGRET CM_Open_DevNode_Key( DEVINST dnDevNode, REGSAM samDesired, ULONG ulHardwareProfile, ULONG ulFlags, PHKEY phkDevice, ULONG ulDisposition); dnDevNode: 设备节点的句柄,通过此参数指定要打开的设备节点。 samDesired: 注册表项的访问权限,可以是 KEY_READ、KEY_WRITE 等标志的组合。 ulHardwareProfile: 指定要打开的硬件配置文件的硬件配置文件号。 ulFlags: 控制函数行为的标志,可以是 0 或以下之一: - CM_REGISTRY_HARDWARE: 打开硬件注册表项。 - CM_REGISTRY_SOFTW...
Win32 API:CM_Open_Device_Interface_KeyW 函数(Cfgmgr32.h)
CM_Open_Device_Interface_KeyW 函数是 Win32 API 中 Cfgmgr32.h 头文件中的一个函数,用于打开设备接口的注册表项。这是 CM_Open_Device_Interface_Key 函数的 Unicode 版本。以下是 CM_Open_Device_Interface_KeyW 函数的一般格式和参数说明:CMAPI CONFIGRET CM_Open_Device_Interface_KeyW( LPCWSTR pszDeviceInterface, REGSAM samDesired, ULONG ulHardwareProfile, ULONG ulFlags, PHKEY phkDeviceInterface, HMACHINE hMachine); pszDeviceInterface: 指向以 NULL 结尾的 Unicode 字符串的指针,表示设备接口的路径。 samDesired: 注册表项的访问权限,可以是 KEY_READ、KEY_WRITE 等标志的组合。 ulHardwareProfi...
Win32 API:CM_Open_Device_Interface_KeyA 函数(Cfgmgr32.h)
CM_Open_Device_Interface_KeyA 函数是 Win32 API 中 Cfgmgr32.h 头文件中的一个函数,用于打开设备接口的注册表项。这是 CM_Open_Device_Interface_Key 函数的 ANSI 版本。以下是 CM_Open_Device_Interface_KeyA 函数的一般格式和参数说明:CMAPI CONFIGRET CM_Open_Device_Interface_KeyA( LPCSTR pszDeviceInterface, REGSAM samDesired, ULONG ulHardwareProfile, ULONG ulFlags, PHKEY phkDeviceInterface, HMACHINE hMachine); pszDeviceInterface: 指向以 NULL 结尾的 ANSI 字符串的指针,表示设备接口的路径。 samDesired: 注册表项的访问权限,可以是 KEY_READ、KEY_WRITE 等标志的组合。 ulHardwareProfile: 指定...