ReactOS 0.4.16-dev-1188-gc03d779
cfgmgr32.h File Reference
#include <cfg.h>
#include <guiddef.h>
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for cfgmgr32.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _CONFLICT_DETAILS_A
 
struct  _CONFLICT_DETAILS_W
 
struct  Mem_Range_s
 
struct  Mem_Des_s
 
struct  Mem_Resource_s
 
struct  Mem_Large_Range_s
 
struct  Mem_Large_Des_s
 
struct  Mem_Large_Resource_s
 
struct  IO_Range_s
 
struct  IO_Des_s
 
struct  IO_Resource_s
 
struct  DMA_Des_s
 
struct  DMA_Range_s
 
struct  DMA_Resource_s
 
struct  IRQ_Range_s
 
struct  IRQ_Des_32_s
 
struct  IRQ_Des_64_s
 
struct  IRQ_Resource_32_s
 
struct  IRQ_Resource_64_s
 
struct  DevPrivate_Range_s
 
struct  DevPrivate_Des_s
 
struct  DevPrivate_Resource_s
 
struct  CS_Des_s
 
struct  CS_Resource_s
 
struct  PcCard_Des_s
 
struct  PcCard_Resource_s
 
struct  MfCard_Des_s
 
struct  MfCard_Resource_s
 
struct  BusNumber_Des_s
 
struct  BusNumber_Range_s
 
struct  BusNumber_Resource_s
 
struct  HWProfileInfo_sA
 
struct  HWProfileInfo_sW
 

Macros

#define _CFGMGR32_H_
 
#define CMAPI   DECLSPEC_IMPORT
 
#define MAX_CONFIG_VALUE   9999
 
#define MAX_INSTANCE_VALUE   9999
 
#define MAX_DEVICE_ID_LEN   200
 
#define MAX_DEVNODE_ID_LEN   MAX_DEVICE_ID_LEN
 
#define MAX_CLASS_NAME_LEN   32
 
#define MAX_GUID_STRING_LEN   39
 
#define MAX_PROFILE_LEN   80
 
#define MAX_MEM_REGISTERS   9
 
#define MAX_IO_PORTS   20
 
#define MAX_IRQS   7
 
#define MAX_DMA_CHANNELS   7
 
#define DWORD_MAX   0xffffffffUL
 
#define DWORDLONG_MAX   0xffffffffffffffffui64
 
#define CONFIGMG_VERSION   0x0400
 
#define CM_CDMASK_DEVINST   0x00000001
 
#define CM_CDMASK_RESDES   0x00000002
 
#define CM_CDMASK_FLAGS   0x00000004
 
#define CM_CDMASK_DESCRIPTION   0x00000008
 
#define CM_CDMASK_VALID   0x0000000F
 
#define CM_CDFLAGS_DRIVER   0x00000001
 
#define CM_CDFLAGS_ROOT_OWNED   0x00000002
 
#define CM_CDFLAGS_RESERVED   0x00000004
 
#define mMD_MemoryType   0x1
 
#define fMD_MemoryType   mMD_MemoryType
 
#define fMD_ROM   0x0
 
#define fMD_RAM   0x1
 
#define mMD_32_24   0x2
 
#define fMD_32_24   mMD_32_24
 
#define fMD_24   0x0
 
#define fMD_32   0x2
 
#define mMD_Prefetchable   0x4
 
#define fMD_Prefetchable   mMD_Prefetchable
 
#define fMD_Pref   mMD_Prefetchable
 
#define fMD_PrefetchDisallowed   0x0
 
#define fMD_PrefetchAllowed   0x4
 
#define mMD_Readable   0x8
 
#define fMD_Readable   mMD_Readable
 
#define fMD_ReadAllowed   0x0
 
#define fMD_ReadDisallowed   0x8
 
#define mMD_CombinedWrite   0x10
 
#define fMD_CombinedWrite   mMD_CombinedWrite
 
#define fMD_CombinedWriteDisallowed   0x0
 
#define fMD_CombinedWriteAllowed   0x10
 
#define mMD_Cacheable   0x20
 
#define fMD_NonCacheable   0x0
 
#define fMD_Cacheable   0x20
 
#define fMD_WINDOW_DECODE   0x40
 
#define fMD_MEMORY_BAR   0x80
 
#define MType_Range   sizeof(MEM_RANGE)
 
#define MLType_Range   sizeof(struct Mem_Large_Range_s)
 
#define fIOD_PortType   0x1
 
#define fIOD_Memory   0x0
 
#define fIOD_IO   0x1
 
#define fIOD_DECODE   0x00fc
 
#define fIOD_10_BIT_DECODE   0x0004
 
#define fIOD_12_BIT_DECODE   0x0008
 
#define fIOD_16_BIT_DECODE   0x0010
 
#define fIOD_POSITIVE_DECODE   0x0020
 
#define fIOD_PASSIVE_DECODE   0x0040
 
#define fIOD_WINDOW_DECODE   0x0080
 
#define fIOD_PORT_BAR   0x0100
 
#define IO_ALIAS_10_BIT_DECODE   0x00000004
 
#define IO_ALIAS_12_BIT_DECODE   0x00000010
 
#define IO_ALIAS_16_BIT_DECODE   0x00000000
 
#define IO_ALIAS_POSITIVE_DECODE   0x000000FF
 
#define IOA_Local   0xff
 
#define IOType_Range   sizeof(IO_RANGE)
 
#define mDD_Width   0x3
 
#define fDD_BYTE   0x0
 
#define fDD_WORD   0x1
 
#define fDD_DWORD   0x2
 
#define fDD_BYTE_AND_WORD   0x3
 
#define mDD_BusMaster   0x4
 
#define fDD_NoBusMaster   0x0
 
#define fDD_BusMaster   0x4
 
#define mDD_Type   0x18
 
#define fDD_TypeStandard   0x00
 
#define fDD_TypeA   0x08
 
#define fDD_TypeB   0x10
 
#define fDD_TypeF   0x18
 
#define DType_Range   sizeof(DMA_RANGE)
 
#define mIRQD_Share   0x1
 
#define fIRQD_Exclusive   0x0
 
#define fIRQD_Share   0x1
 
#define fIRQD_Share_Bit   0
 
#define fIRQD_Level_Bit   1
 
#define mIRQD_Edge_Level   0x2
 
#define fIRQD_Level   0x0
 
#define fIRQD_Edge   0x2
 
#define IRQType_Range   sizeof(IRQ_RANGE)
 
#define CM_RESDES_WIDTH_DEFAULT   0x00000000
 
#define CM_RESDES_WIDTH_32   0x00000001
 
#define CM_RESDES_WIDTH_64   0x00000002
 
#define CM_RESDES_WIDTH_BITS   0x00000003
 
#define PType_Range   sizeof(DEVPRIVATE_RANGE)
 
#define mPCD_IO_8_16   0x1
 
#define fPCD_IO_8   0x0
 
#define fPCD_IO_16   0x1
 
#define mPCD_MEM_8_16   0x2
 
#define fPCD_MEM_8   0x0
 
#define fPCD_MEM_16   0x2
 
#define mPCD_MEM_A_C   0xC
 
#define fPCD_MEM1_A   0x4
 
#define fPCD_MEM2_A   0x8
 
#define fPCD_IO_ZW_8   0x10
 
#define fPCD_IO_SRC_16   0x20
 
#define fPCD_IO_WS_16   0x40
 
#define mPCD_MEM_WS   0x300
 
#define fPCD_MEM_WS_ONE   0x100
 
#define fPCD_MEM_WS_TWO   0x200
 
#define fPCD_MEM_WS_THREE   0x300
 
#define fPCD_MEM_A   0x4
 
#define fPCD_ATTRIBUTES_PER_WINDOW   0x8000
 
#define fPCD_IO1_16   0x00010000
 
#define fPCD_IO1_ZW_8   0x00020000
 
#define fPCD_IO1_SRC_16   0x00040000
 
#define fPCD_IO1_WS_16   0x00080000
 
#define fPCD_IO2_16   0x00100000
 
#define fPCD_IO2_ZW_8   0x00200000
 
#define fPCD_IO2_SRC_16   0x00400000
 
#define fPCD_IO2_WS_16   0x00800000
 
#define mPCD_MEM1_WS   0x03000000
 
#define fPCD_MEM1_WS_ONE   0x01000000
 
#define fPCD_MEM1_WS_TWO   0x02000000
 
#define fPCD_MEM1_WS_THREE   0x03000000
 
#define fPCD_MEM1_16   0x04000000
 
#define mPCD_MEM2_WS   0x30000000
 
#define fPCD_MEM2_WS_ONE   0x10000000
 
#define fPCD_MEM2_WS_TWO   0x20000000
 
#define fPCD_MEM2_WS_THREE   0x30000000
 
#define fPCD_MEM2_16   0x40000000
 
#define PCD_MAX_MEMORY   2
 
#define PCD_MAX_IO   2
 
#define fPMF_AUDIO_ENABLE   0x8
 
#define mPMF_AUDIO_ENABLE   fPMF_AUDIO_ENABLE
 
#define BusNumberType_Range   sizeof(BUSNUMBER_RANGE)
 
#define CM_HWPI_NOT_DOCKABLE   0x00000000
 
#define CM_HWPI_UNDOCKED   0x00000001
 
#define CM_HWPI_DOCKED   0x00000002
 
#define ResType_All   0x00000000
 
#define ResType_None   0x00000000
 
#define ResType_Mem   0x00000001
 
#define ResType_IO   0x00000002
 
#define ResType_DMA   0x00000003
 
#define ResType_IRQ   0x00000004
 
#define ResType_DoNotUse   0x00000005
 
#define ResType_BusNumber   0x00000006
 
#define ResType_MemLarge   0x00000007
 
#define ResType_MAX   0x00000007
 
#define ResType_Ignored_Bit   0x00008000
 
#define ResType_ClassSpecific   0x0000FFFF
 
#define ResType_Reserved   0x00008000
 
#define ResType_DevicePrivate   0x00008001
 
#define ResType_PcCardConfig   0x00008002
 
#define ResType_MfCardConfig   0x00008003
 
#define CM_ADD_RANGE_ADDIFCONFLICT   0x00000000
 
#define CM_ADD_RANGE_DONOTADDIFCONFLICT   0x00000001
 
#define CM_ADD_RANGE_BITS   0x00000001
 
#define BASIC_LOG_CONF   0x00000000
 
#define FILTERED_LOG_CONF   0x00000001
 
#define ALLOC_LOG_CONF   0x00000002
 
#define BOOT_LOG_CONF   0x00000003
 
#define FORCED_LOG_CONF   0x00000004
 
#define OVERRIDE_LOG_CONF   0x00000005
 
#define NUM_LOG_CONF   0x00000006
 
#define LOG_CONF_BITS   0x00000007
 
#define PRIORITY_EQUAL_FIRST   0x00000008
 
#define PRIORITY_EQUAL_LAST   0x00000000
 
#define PRIORITY_BIT   0x00000008
 
#define RegDisposition_OpenAlways   0x00000000
 
#define RegDisposition_OpenExisting   0x00000001
 
#define RegDisposition_Bits   0x00000001
 
#define CM_ADD_ID_HARDWARE   0x00000000
 
#define CM_ADD_ID_COMPATIBLE   0x00000001
 
#define CM_ADD_ID_BITS   0x00000001
 
#define CM_CREATE_DEVNODE_NORMAL   0x00000000
 
#define CM_CREATE_DEVNODE_NO_WAIT_INSTALL   0x00000001
 
#define CM_CREATE_DEVNODE_PHANTOM   0x00000002
 
#define CM_CREATE_DEVNODE_GENERATE_ID   0x00000004
 
#define CM_CREATE_DEVNODE_DO_NOT_INSTALL   0x00000008
 
#define CM_CREATE_DEVNODE_BITS   0x0000000F
 
#define CM_CREATE_DEVINST_NORMAL   CM_CREATE_DEVNODE_NORMAL
 
#define CM_CREATE_DEVINST_NO_WAIT_INSTALL   CM_CREATE_DEVNODE_NO_WAIT_INSTALL
 
#define CM_CREATE_DEVINST_PHANTOM   CM_CREATE_DEVNODE_PHANTOM
 
#define CM_CREATE_DEVINST_GENERATE_ID   CM_CREATE_DEVNODE_GENERATE_ID
 
#define CM_CREATE_DEVINST_DO_NOT_INSTALL   CM_CREATE_DEVNODE_DO_NOT_INSTALL
 
#define CM_CREATE_DEVINST_BITS   CM_CREATE_DEVNODE_BITS
 
#define CM_DELETE_CLASS_ONLY   0x00000000
 
#define CM_DELETE_CLASS_SUBKEYS   0x00000001
 
#define CM_DELETE_CLASS_INTERFACE   0x00000002
 
#define CM_DELETE_CLASS_BITS   0x00000003
 
#define CM_DETECT_NEW_PROFILE   0x00000001
 
#define CM_DETECT_CRASHED   0x00000002
 
#define CM_DETECT_HWPROF_FIRST_BOOT   0x00000004
 
#define CM_DETECT_RUN   0x80000000
 
#define CM_DETECT_BITS   0x80000007
 
#define CM_DISABLE_POLITE   0x00000000
 
#define CM_DISABLE_ABSOLUTE   0x00000001
 
#define CM_DISABLE_HARDWARE   0x00000002
 
#define CM_DISABLE_UI_NOT_OK   0x00000004
 
#define CM_DISABLE_BITS   0x00000007
 
#define CM_GETIDLIST_FILTER_NONE   0x00000000
 
#define CM_GETIDLIST_FILTER_ENUMERATOR   0x00000001
 
#define CM_GETIDLIST_FILTER_SERVICE   0x00000002
 
#define CM_GETIDLIST_FILTER_EJECTRELATIONS   0x00000004
 
#define CM_GETIDLIST_FILTER_REMOVALRELATIONS   0x00000008
 
#define CM_GETIDLIST_FILTER_POWERRELATIONS   0x00000010
 
#define CM_GETIDLIST_FILTER_BUSRELATIONS   0x00000020
 
#define CM_GETIDLIST_DONOTGENERATE   0x10000040
 
#define CM_GETIDLIST_FILTER_BITS   0x1000007F
 
#define CM_GETIDLIST_FILTER_TRANSPORTRELATIONS   0x00000080
 
#define CM_GETIDLIST_FILTER_PRESENT   0x00000100
 
#define CM_GETIDLIST_FILTER_CLASS   0x00000200
 
#define CM_GETIDLIST_FILTER_BITS   0x100003FF
 
#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT   0x00000000
 
#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES   0x00000001
 
#define CM_GET_DEVICE_INTERFACE_LIST_BITS   0x00000001
 
#define CM_DRP_DEVICEDESC   0x00000001
 
#define CM_DRP_HARDWAREID   0x00000002
 
#define CM_DRP_COMPATIBLEIDS   0x00000003
 
#define CM_DRP_UNUSED0   0x00000004
 
#define CM_DRP_SERVICE   0x00000005
 
#define CM_DRP_UNUSED1   0x00000006
 
#define CM_DRP_UNUSED2   0x00000007
 
#define CM_DRP_CLASS   0x00000008
 
#define CM_DRP_CLASSGUID   0x00000009
 
#define CM_DRP_DRIVER   0x0000000A
 
#define CM_DRP_CONFIGFLAGS   0x0000000B
 
#define CM_DRP_MFG   0x0000000C
 
#define CM_DRP_FRIENDLYNAME   0x0000000D
 
#define CM_DRP_LOCATION_INFORMATION   0x0000000E
 
#define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME   0x0000000F
 
#define CM_DRP_CAPABILITIES   0x00000010
 
#define CM_DRP_UI_NUMBER   0x00000011
 
#define CM_DRP_UPPERFILTERS   0x00000012
 
#define CM_CRP_UPPERFILTERS   CM_DRP_UPPERFILTERS
 
#define CM_DRP_LOWERFILTERS   0x00000013
 
#define CM_CRP_LOWERFILTERS   CM_DRP_LOWERFILTERS
 
#define CM_DRP_BUSTYPEGUID   0x00000014
 
#define CM_DRP_LEGACYBUSTYPE   0x00000015
 
#define CM_DRP_BUSNUMBER   0x00000016
 
#define CM_DRP_ENUMERATOR_NAME   0x00000017
 
#define CM_DRP_SECURITY   0x00000018
 
#define CM_CRP_SECURITY   CM_DRP_SECURITY
 
#define CM_DRP_SECURITY_SDS   0x00000019
 
#define CM_CRP_SECURITY_SDS   CM_DRP_SECURITY_SDS
 
#define CM_DRP_DEVTYPE   0x0000001A
 
#define CM_CRP_DEVTYPE   CM_DRP_DEVTYPE
 
#define CM_DRP_EXCLUSIVE   0x0000001B
 
#define CM_CRP_EXCLUSIVE   CM_DRP_EXCLUSIVE
 
#define CM_DRP_CHARACTERISTICS   0x0000001C
 
#define CM_CRP_CHARACTERISTICS   CM_DRP_CHARACTERISTICS
 
#define CM_DRP_ADDRESS   0x0000001D
 
#define CM_DRP_UI_NUMBER_DESC_FORMAT   0x0000001E
 
#define CM_DRP_DEVICE_POWER_DATA   0x0000001F
 
#define CM_DRP_REMOVAL_POLICY   0x00000020
 
#define CM_DRP_REMOVAL_POLICY_HW_DEFAULT   0x00000021
 
#define CM_DRP_REMOVAL_POLICY_OVERRIDE   0x00000022
 
#define CM_DRP_INSTALL_STATE   0x00000023
 
#define CM_DRP_LOCATION_PATHS   0x00000024
 
#define CM_DRP_BASE_CONTAINERID   0x00000025
 
#define CM_DRP_MIN   0x00000001
 
#define CM_CRP_MIN   CM_DRP_MIN
 
#define CM_DRP_MAX   0x00000025
 
#define CM_CRP_MAX   CM_DRP_MAX
 
#define CM_DEVCAP_LOCKSUPPORTED   0x00000001
 
#define CM_DEVCAP_EJECTSUPPORTED   0x00000002
 
#define CM_DEVCAP_REMOVABLE   0x00000004
 
#define CM_DEVCAP_DOCKDEVICE   0x00000008
 
#define CM_DEVCAP_UNIQUEID   0x00000010
 
#define CM_DEVCAP_SILENTINSTALL   0x00000020
 
#define CM_DEVCAP_RAWDEVICEOK   0x00000040
 
#define CM_DEVCAP_SURPRISEREMOVALOK   0x00000080
 
#define CM_DEVCAP_HARDWAREDISABLED   0x00000100
 
#define CM_DEVCAP_NONDYNAMIC   0x00000200
 
#define CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL   1
 
#define CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL   2
 
#define CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL   3
 
#define CM_INSTALL_STATE_INSTALLED   0
 
#define CM_INSTALL_STATE_NEEDS_REINSTALL   1
 
#define CM_INSTALL_STATE_FAILED_INSTALL   2
 
#define CM_INSTALL_STATE_FINISH_INSTALL   3
 
#define CM_LOCATE_DEVNODE_NORMAL   0x00000000
 
#define CM_LOCATE_DEVNODE_PHANTOM   0x00000001
 
#define CM_LOCATE_DEVNODE_CANCELREMOVE   0x00000002
 
#define CM_LOCATE_DEVNODE_NOVALIDATION   0x00000004
 
#define CM_LOCATE_DEVNODE_BITS   0x00000007
 
#define CM_LOCATE_DEVINST_NORMAL   CM_LOCATE_DEVNODE_NORMAL
 
#define CM_LOCATE_DEVINST_PHANTOM   CM_LOCATE_DEVNODE_PHANTOM
 
#define CM_LOCATE_DEVINST_CANCELREMOVE   CM_LOCATE_DEVNODE_CANCELREMOVE
 
#define CM_LOCATE_DEVINST_NOVALIDATION   CM_LOCATE_DEVNODE_NOVALIDATION
 
#define CM_LOCATE_DEVINST_BITS   CM_LOCATE_DEVNODE_BITS
 
#define CM_OPEN_CLASS_KEY_INSTALLER   0x00000000
 
#define CM_OPEN_CLASS_KEY_INTERFACE   0x00000001
 
#define CM_OPEN_CLASS_KEY_BITS   0x00000001
 
#define CM_REMOVE_UI_OK   0x00000000
 
#define CM_REMOVE_UI_NOT_OK   0x00000001
 
#define CM_REMOVE_NO_RESTART   0x00000002
 
#define CM_REMOVE_BITS   0x00000003
 
#define CM_QUERY_REMOVE_UI_OK   (CM_REMOVE_UI_OK)
 
#define CM_QUERY_REMOVE_UI_NOT_OK   (CM_REMOVE_UI_NOT_OK)
 
#define CM_QUERY_REMOVE_BITS   (CM_QUERY_REMOVE_UI_OK|CM_QUERY_REMOVE_UI_NOT_OK)
 
#define CM_REENUMERATE_NORMAL   0x00000000
 
#define CM_REENUMERATE_SYNCHRONOUS   0x00000001
 
#define CM_REENUMERATE_RETRY_INSTALLATION   0x00000002
 
#define CM_REENUMERATE_ASYNCHRONOUS   0x00000004
 
#define CM_REENUMERATE_BITS   0x00000007
 
#define CM_REGISTER_DEVICE_DRIVER_STATIC   0x00000000
 
#define CM_REGISTER_DEVICE_DRIVER_DISABLEABLE   0x00000001
 
#define CM_REGISTER_DEVICE_DRIVER_REMOVABLE   0x00000002
 
#define CM_REGISTER_DEVICE_DRIVER_BITS   0x00000003
 
#define CM_REGISTRY_HARDWARE   0x00000000
 
#define CM_REGISTRY_SOFTWARE   0x00000001
 
#define CM_REGISTRY_USER   0x00000100
 
#define CM_REGISTRY_CONFIG   0x00000200
 
#define CM_REGISTRY_BITS   0x00000301
 
#define CM_SET_DEVNODE_PROBLEM_NORMAL   0x00000000
 
#define CM_SET_DEVNODE_PROBLEM_OVERRIDE   0x00000001
 
#define CM_SET_DEVNODE_PROBLEM_BITS   0x00000001
 
#define CM_SET_DEVINST_PROBLEM_NORMAL   CM_SET_DEVNODE_PROBLEM_NORMAL
 
#define CM_SET_DEVINST_PROBLEM_OVERRIDE   CM_SET_DEVNODE_PROBLEM_OVERRIDE
 
#define CM_SET_DEVINST_PROBLEM_BITS   CM_SET_DEVNODE_PROBLEM_BITS
 
#define CM_SET_HW_PROF_FLAGS_UI_NOT_OK   0x00000001
 
#define CM_SET_HW_PROF_FLAGS_BITS   0x00000001
 
#define CM_SETUP_DEVNODE_READY   0x00000000
 
#define CM_SETUP_DEVINST_READY   CM_SETUP_DEVNODE_READY
 
#define CM_SETUP_DOWNLOAD   0x00000001
 
#define CM_SETUP_WRITE_LOG_CONFS   0x00000002
 
#define CM_SETUP_PROP_CHANGE   0x00000003
 
#define CM_SETUP_DEVNODE_RESET   0x00000004
 
#define CM_SETUP_DEVINST_RESET   CM_SETUP_DEVNODE_RESET
 
#define CM_SETUP_BITS   0x00000007
 
#define CM_QUERY_ARBITRATOR_RAW   0x00000000
 
#define CM_QUERY_ARBITRATOR_TRANSLATED   0x00000001
 
#define CM_QUERY_ARBITRATOR_BITS   0x00000001
 
#define CM_CUSTOMDEVPROP_MERGE_MULTISZ   0x00000001
 
#define CM_CUSTOMDEVPROP_BITS   0x00000001
 
#define CM_NAME_ATTRIBUTE_NAME_RETRIEVED_FROM_DEVICE   0x1
 
#define CM_NAME_ATTRIBUTE_USER_ASSIGNED_NAME   0x2
 
#define CR_SUCCESS   0x00000000
 
#define CR_DEFAULT   0x00000001
 
#define CR_OUT_OF_MEMORY   0x00000002
 
#define CR_INVALID_POINTER   0x00000003
 
#define CR_INVALID_FLAG   0x00000004
 
#define CR_INVALID_DEVNODE   0x00000005
 
#define CR_INVALID_DEVINST   CR_INVALID_DEVNODE
 
#define CR_INVALID_RES_DES   0x00000006
 
#define CR_INVALID_LOG_CONF   0x00000007
 
#define CR_INVALID_ARBITRATOR   0x00000008
 
#define CR_INVALID_NODELIST   0x00000009
 
#define CR_DEVNODE_HAS_REQS   0x0000000A
 
#define CR_DEVINST_HAS_REQS   CR_DEVNODE_HAS_REQS
 
#define CR_INVALID_RESOURCEID   0x0000000B
 
#define CR_DLVXD_NOT_FOUND   0x0000000C
 
#define CR_NO_SUCH_DEVNODE   0x0000000D
 
#define CR_NO_SUCH_DEVINST   CR_NO_SUCH_DEVNODE
 
#define CR_NO_MORE_LOG_CONF   0x0000000E
 
#define CR_NO_MORE_RES_DES   0x0000000F
 
#define CR_ALREADY_SUCH_DEVNODE   0x00000010
 
#define CR_ALREADY_SUCH_DEVINST   CR_ALREADY_SUCH_DEVNODE
 
#define CR_INVALID_RANGE_LIST   0x00000011
 
#define CR_INVALID_RANGE   0x00000012
 
#define CR_FAILURE   0x00000013
 
#define CR_NO_SUCH_LOGICAL_DEV   0x00000014
 
#define CR_CREATE_BLOCKED   0x00000015
 
#define CR_NOT_SYSTEM_VM   0x00000016
 
#define CR_REMOVE_VETOED   0x00000017
 
#define CR_APM_VETOED   0x00000018
 
#define CR_INVALID_LOAD_TYPE   0x00000019
 
#define CR_BUFFER_SMALL   0x0000001A
 
#define CR_NO_ARBITRATOR   0x0000001B
 
#define CR_NO_REGISTRY_HANDLE   0x0000001C
 
#define CR_REGISTRY_ERROR   0x0000001D
 
#define CR_INVALID_DEVICE_ID   0x0000001E
 
#define CR_INVALID_DATA   0x0000001F
 
#define CR_INVALID_API   0x00000020
 
#define CR_DEVLOADER_NOT_READY   0x00000021
 
#define CR_NEED_RESTART   0x00000022
 
#define CR_NO_MORE_HW_PROFILES   0x00000023
 
#define CR_DEVICE_NOT_THERE   0x00000024
 
#define CR_NO_SUCH_VALUE   0x00000025
 
#define CR_WRONG_TYPE   0x00000026
 
#define CR_INVALID_PRIORITY   0x00000027
 
#define CR_NOT_DISABLEABLE   0x00000028
 
#define CR_FREE_RESOURCES   0x00000029
 
#define CR_QUERY_VETOED   0x0000002A
 
#define CR_CANT_SHARE_IRQ   0x0000002B
 
#define CR_NO_DEPENDENT   0x0000002C
 
#define CR_SAME_RESOURCES   0x0000002D
 
#define CR_NO_SUCH_REGISTRY_KEY   0x0000002E
 
#define CR_INVALID_MACHINENAME   0x0000002F
 
#define CR_REMOTE_COMM_FAILURE   0x00000030
 
#define CR_MACHINE_UNAVAILABLE   0x00000031
 
#define CR_NO_CM_SERVICES   0x00000032
 
#define CR_ACCESS_DENIED   0x00000033
 
#define CR_CALL_NOT_IMPLEMENTED   0x00000034
 
#define CR_INVALID_PROPERTY   0x00000035
 
#define CR_DEVICE_INTERFACE_ACTIVE   0x00000036
 
#define CR_NO_SUCH_DEVICE_INTERFACE   0x00000037
 
#define CR_INVALID_REFERENCE_STRING   0x00000038
 
#define CR_INVALID_CONFLICT_LIST   0x00000039
 
#define CR_INVALID_INDEX   0x0000003A
 
#define CR_INVALID_STRUCTURE_SIZE   0x0000003B
 
#define NUM_CR_RESULTS   0x0000003C
 
#define CM_GLOBAL_STATE_CAN_DO_UI   0x00000001
 
#define CM_GLOBAL_STATE_ON_BIG_STACK   0x00000002
 
#define CM_GLOBAL_STATE_SERVICES_AVAILABLE   0x00000004
 
#define CM_GLOBAL_STATE_SHUTTING_DOWN   0x00000008
 
#define CM_GLOBAL_STATE_DETECTION_PENDING   0x00000010
 
#define CM_GLOBAL_STATE_REBOOT_REQUIRED   0x00000020
 
#define CM_Add_ID   CM_Add_IDA
 
#define CM_Add_ID_Ex   CM_Add_ID_ExA
 
#define CM_Connect_Machine   CM_Connect_MachineA
 
#define CM_Create_DevInstW   CM_Create_DevNodeW
 
#define CM_Create_DevInstA   CM_Create_DevNodeA
 
#define CM_Create_DevInst_ExW   CM_Create_DevNode_ExW
 
#define CM_Create_DevInst_ExA   CM_Create_DevNode_ExA
 
#define CM_Create_DevNode   CM_Create_DevNodeA
 
#define CM_Create_DevInst   CM_Create_DevNodeA
 
#define CM_Create_DevNode_Ex   CM_Create_DevNode_ExA
 
#define CM_Create_DevInst_Ex   CM_Create_DevNode_ExA
 
#define CM_Delete_DevInst_Key   CM_Delete_DevNode_Key
 
#define CM_Delete_DevInst_Key_Ex   CM_Delete_DevNode_Key_Ex
 
#define CM_Disable_DevInst   CM_Disable_DevNode
 
#define CM_Disable_DevInst_Ex   CM_Disable_DevNode_Ex
 
#define CM_Enable_DevInst   CM_Enable_DevNode
 
#define CM_Enable_DevInst_Ex   CM_Enable_DevNode_Ex
 
#define CM_Enumerate_Enumerators   CM_Enumerate_EnumeratorsA
 
#define CM_Enumerate_Enumerators_Ex   CM_Enumerate_Enumerators_ExA
 
#define CM_Get_Class_Name   CM_Get_Class_NameA
 
#define CM_Get_Class_Name_Ex   CM_Get_Class_Name_ExA
 
#define CM_Get_Class_Key_Name   CM_Get_Class_Key_NameA
 
#define CM_Get_Class_Key_Name_Ex   CM_Get_Class_Key_Name_ExA
 
#define CM_Get_Device_ID   CM_Get_Device_IDA
 
#define CM_Get_Device_ID_Ex   CM_Get_Device_ID_ExA
 
#define CM_Get_Device_ID_List   CM_Get_Device_ID_ListA
 
#define CM_Get_Device_ID_List_Ex   CM_Get_Device_ID_List_ExA
 
#define CM_Get_Device_ID_List_Size   CM_Get_Device_ID_List_SizeA
 
#define CM_Get_Device_ID_List_Size_Ex   CM_Get_Device_ID_List_Size_ExA
 
#define CM_Get_DevInst_Registry_PropertyW   CM_Get_DevNode_Registry_PropertyW
 
#define CM_Get_DevInst_Registry_PropertyA   CM_Get_DevNode_Registry_PropertyA
 
#define CM_Get_DevInst_Registry_Property_ExW   CM_Get_DevNode_Registry_Property_ExW
 
#define CM_Get_DevInst_Registry_Property_ExA   CM_Get_DevNode_Registry_Property_ExA
 
#define CM_Get_DevInst_Registry_Property   CM_Get_DevNode_Registry_PropertyA
 
#define CM_Get_DevInst_Registry_Property_Ex   CM_Get_DevNode_Registry_Property_ExA
 
#define CM_Get_DevNode_Registry_Property   CM_Get_DevNode_Registry_PropertyA
 
#define CM_Get_DevNode_Registry_Property_Ex   CM_Get_DevNode_Registry_Property_ExA
 
#define CM_Get_DevInst_Custom_PropertyW   CM_Get_DevNode_Custom_PropertyW
 
#define CM_Get_DevInst_Custom_PropertyA   CM_Get_DevNode_Custom_PropertyA
 
#define CM_Get_DevInst_Custom_Property_ExW   CM_Get_DevNode_Custom_Property_ExW
 
#define CM_Get_DevInst_Custom_Property_ExA   CM_Get_DevNode_Custom_Property_ExA
 
#define CM_Get_DevInst_Custom_Property   CM_Get_DevNode_Custom_PropertyA
 
#define CM_Get_DevInst_Custom_Property_Ex   CM_Get_DevNode_Custom_Property_ExA
 
#define CM_Get_DevNode_Custom_Property   CM_Get_DevNode_Custom_PropertyA
 
#define CM_Get_DevNode_Custom_Property_Ex   CM_Get_DevNode_Custom_Property_ExA
 
#define CM_Get_DevInst_Status   CM_Get_DevNode_Status
 
#define CM_Get_DevInst_Status_Ex   CM_Get_DevNode_Status_Ex
 
#define CM_Get_Hardware_Profile_Info   CM_Get_Hardware_Profile_InfoA
 
#define CM_Get_Hardware_Profile_Info_Ex   CM_Get_Hardware_Profile_Info_ExA
 
#define CM_Get_HW_Prof_Flags   CM_Get_HW_Prof_FlagsA
 
#define CM_Get_HW_Prof_Flags_Ex   CM_Get_HW_Prof_Flags_ExA
 
#define CM_Get_Device_Interface_Alias   CM_Get_Device_Interface_AliasA
 
#define CM_Get_Device_Interface_Alias_Ex   CM_Get_Device_Interface_Alias_ExA
 
#define CM_Get_Device_Interface_List   CM_Get_Device_Interface_ListA
 
#define CM_Get_Device_Interface_List_Ex   CM_Get_Device_Interface_List_ExA
 
#define CM_Get_Device_Interface_List_Size   CM_Get_Device_Interface_List_SizeA
 
#define CM_Get_Device_Interface_List_Size_Ex   CM_Get_Device_Interface_List_Size_ExA
 
#define CM_Get_Resource_Conflict_Details   CM_Get_Resource_Conflict_DetailsA
 
#define CM_Get_Class_Registry_Property   CM_Get_Class_Registry_PropertyA
 
#define CM_Set_Class_Registry_Property   CM_Set_Class_Registry_PropertyA
 
#define CM_Locate_DevInstA   CM_Locate_DevNodeA
 
#define CM_Locate_DevInstW   CM_Locate_DevNodeW
 
#define CM_Locate_DevInst_ExA   CM_Locate_DevNode_ExA
 
#define CM_Locate_DevInst_ExW   CM_Locate_DevNode_ExW
 
#define CM_Locate_DevNode   CM_Locate_DevNodeA
 
#define CM_Locate_DevInst   CM_Locate_DevNodeA
 
#define CM_Locate_DevNode_Ex   CM_Locate_DevNode_ExA
 
#define CM_Locate_DevInst_Ex   CM_Locate_DevNode_ExA
 
#define CM_Move_DevInst   CM_Move_DevNode
 
#define CM_Move_DevInst_Ex   CM_Move_DevNode_Ex
 
#define CM_Open_Class_Key   CM_Open_Class_KeyA
 
#define CM_Open_Class_Key_Ex   CM_Open_Class_Key_ExA
 
#define CM_Open_DevInst_Key   CM_Open_DevNode_Key
 
#define CM_Open_DevInst_Key_Ex   CM_Open_DevNode_Key_Ex
 
#define CM_Open_Device_Interface_Key   CM_Open_Device_Interface_KeyA
 
#define CM_Open_Device_Interface_Key_Ex   CM_Open_Device_Interface_Key_ExA
 
#define CM_Delete_Device_Interface_Key   CM_Delete_Device_Interface_KeyA
 
#define CM_Delete_Device_Interface_Key_Ex   CM_Delete_Device_Interface_Key_ExA
 
#define CM_Query_And_Remove_SubTree   CM_Query_And_Remove_SubTreeA
 
#define CM_Query_And_Remove_SubTree_Ex   CM_Query_And_Remove_SubTree_ExA
 
#define CM_Reenumerate_DevInst   CM_Reenumerate_DevNode
 
#define CM_Reenumerate_DevInst_Ex   CM_Reenumerate_DevNode_Ex
 
#define CM_Register_Device_Interface   CM_Register_Device_InterfaceA
 
#define CM_Register_Device_Interface_Ex   CM_Register_Device_Interface_ExA
 
#define CM_Request_Device_Eject   CM_Request_Device_EjectA
 
#define CM_Request_Device_Eject_Ex   CM_Request_Device_Eject_ExA
 
#define CM_Set_DevInst_Problem   CM_Set_DevNode_Problem
 
#define CM_Set_DevInst_Problem_Ex   CM_Set_DevNode_Problem_Ex
 
#define CM_Unregister_Device_Interface   CM_Unregister_Device_InterfaceA
 
#define CM_Unregister_Device_Interface_Ex   CM_Unregister_Device_Interface_ExA
 
#define CM_Set_DevInst_Registry_PropertyW   CM_Set_DevNode_Registry_PropertyW
 
#define CM_Set_DevInst_Registry_PropertyA   CM_Set_DevNode_Registry_PropertyA
 
#define CM_Set_DevInst_Registry_Property_ExW   CM_Set_DevNode_Registry_Property_ExW
 
#define CM_Set_DevInst_Registry_Property_ExA   CM_Set_DevNode_Registry_Property_ExA
 
#define CM_Set_DevInst_Registry_Property   CM_Set_DevNode_Registry_PropertyA
 
#define CM_Set_DevInst_Registry_Property_Ex   CM_Set_DevNode_Registry_Property_ExA
 
#define CM_Set_DevNode_Registry_Property   CM_Set_DevNode_Registry_PropertyA
 
#define CM_Set_DevNode_Registry_Property_Ex   CM_Set_DevNode_Registry_Property_ExA
 
#define CM_Set_HW_Prof_Flags   CM_Set_HW_Prof_FlagsA
 
#define CM_Set_HW_Prof_Flags_Ex   CM_Set_HW_Prof_Flags_ExA
 
#define CM_Setup_DevInst   CM_Setup_DevNode
 
#define CM_Setup_DevInst_Ex   CM_Setup_DevNode_Ex
 
#define CM_Uninstall_DevInst   CM_Uninstall_DevNode
 
#define CM_Uninstall_DevInst_Ex   CM_Uninstall_DevNode_Ex
 
#define CM_WaitNoPendingInstallEvents   CMP_WaitNoPendingInstallEvents
 

Typedefs

typedef CONST VOIDPCVOID
 
typedef RETURN_TYPE CONFIGRET
 
typedef DWORD DEVNODE
 
typedef DWORD DEVINST
 
typedef DEVNODEPDEVNODE
 
typedef DEVNODEPDEVINST
 
typedef _Null_terminated_ CHARDEVNODEID_A
 
typedef _Null_terminated_ CHARDEVINSTID_A
 
typedef _Null_terminated_ WCHARDEVNODEID_W
 
typedef _Null_terminated_ WCHARDEVINSTID_W
 
typedef DEVNODEID_A DEVNODEID
 
typedef DEVINSTID_A DEVINSTID
 
typedef DWORD_PTR LOG_CONF
 
typedef LOG_CONFPLOG_CONF
 
typedef DWORD_PTR RES_DES
 
typedef RES_DESPRES_DES
 
typedef ULONG RESOURCEID
 
typedef RESOURCEIDPRESOURCEID
 
typedef ULONG PRIORITY
 
typedef PRIORITYPPRIORITY
 
typedef DWORD_PTR RANGE_LIST
 
typedef RANGE_LISTPRANGE_LIST
 
typedef DWORD_PTR RANGE_ELEMENT
 
typedef RANGE_ELEMENTPRANGE_ELEMENT
 
typedef HANDLE HMACHINE
 
typedef HMACHINEPHMACHINE
 
typedef ULONG_PTR CONFLICT_LIST
 
typedef CONFLICT_LISTPCONFLICT_LIST
 
typedef struct _CONFLICT_DETAILS_A CONFLICT_DETAILS_A
 
typedef struct _CONFLICT_DETAILS_APCONFLICT_DETAILS_A
 
typedef struct _CONFLICT_DETAILS_W CONFLICT_DETAILS_W
 
typedef struct _CONFLICT_DETAILS_WPCONFLICT_DETAILS_W
 
typedef CONFLICT_DETAILS_A CONFLICT_DETAILS
 
typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS
 
typedef ULONG REGDISPOSITION
 
typedef struct Mem_Range_s MEM_RANGE
 
typedef struct Mem_Range_sPMEM_RANGE
 
typedef struct Mem_Des_s MEM_DES
 
typedef struct Mem_Des_sPMEM_DES
 
typedef struct Mem_Resource_s MEM_RESOURCE
 
typedef struct Mem_Resource_sPMEM_RESOURCE
 
typedef struct Mem_Large_Range_s MEM_LARGE_RANGE
 
typedef struct Mem_Large_Range_sPMEM_LARGE_RANGE
 
typedef struct Mem_Large_Des_s MEM_LARGE_DES
 
typedef struct Mem_Large_Des_sPMEM_LARGE_DES
 
typedef struct Mem_Large_Resource_s MEM_LARGE_RESOURCE
 
typedef struct Mem_Large_Resource_sPMEM_LARGE_RESOURCE
 
typedef struct IO_Range_s IO_RANGE
 
typedef struct IO_Range_sPIO_RANGE
 
typedef struct IO_Des_s IO_DES
 
typedef struct IO_Des_sPIO_DES
 
typedef struct IO_Resource_s IO_RESOURCE
 
typedef struct IO_Resource_sPIO_RESOURCE
 
typedef struct DMA_Des_s DMA_DES
 
typedef struct DMA_Des_sPDMA_DES
 
typedef struct DMA_Range_s DMA_RANGE
 
typedef struct DMA_Range_sPDMA_RANGE
 
typedef struct DMA_Resource_s DMA_RESOURCE
 
typedef struct DMA_Resource_sPDMA_RESOURCE
 
typedef struct IRQ_Range_s IRQ_RANGE
 
typedef struct IRQ_Range_sPIRQ_RANGE
 
typedef struct IRQ_Des_32_s IRQ_DES_32
 
typedef struct IRQ_Des_32_sPIRQ_DES_32
 
typedef struct IRQ_Des_64_s IRQ_DES_64
 
typedef struct IRQ_Des_64_sPIRQ_DES_64
 
typedef IRQ_DES_32 IRQ_DES
 
typedef PIRQ_DES_32 PIRQ_DES
 
typedef struct IRQ_Resource_32_s IRQ_RESOURCE_32
 
typedef struct IRQ_Resource_32_sPIRQ_RESOURCE_32
 
typedef struct IRQ_Resource_64_s IRQ_RESOURCE_64
 
typedef struct IRQ_Resource_64_sPIRQ_RESOURCE_64
 
typedef IRQ_RESOURCE_32 IRQ_RESOURCE
 
typedef PIRQ_RESOURCE_32 PIRQ_RESOURCE
 
typedef struct DevPrivate_Range_s DEVPRIVATE_RANGE
 
typedef struct DevPrivate_Range_sPDEVPRIVATE_RANGE
 
typedef struct DevPrivate_Des_s DEVPRIVATE_DES
 
typedef struct DevPrivate_Des_sPDEVPRIVATE_DES
 
typedef struct DevPrivate_Resource_s DEVPRIVATE_RESOURCE
 
typedef struct DevPrivate_Resource_sPDEVPRIVATE_RESOURCE
 
typedef struct CS_Des_s CS_DES
 
typedef struct CS_Des_sPCS_DES
 
typedef struct CS_Resource_s CS_RESOURCE
 
typedef struct CS_Resource_sPCS_RESOURCE
 
typedef struct PcCard_Des_s PCCARD_DES
 
typedef struct PcCard_Des_sPPCCARD_DES
 
typedef struct PcCard_Resource_s PCCARD_RESOURCE
 
typedef struct PcCard_Resource_sPPCCARD_RESOURCE
 
typedef struct MfCard_Des_s MFCARD_DES
 
typedef struct MfCard_Des_sPMFCARD_DES
 
typedef struct MfCard_Resource_s MFCARD_RESOURCE
 
typedef struct MfCard_Resource_sPMFCARD_RESOURCE
 
typedef struct BusNumber_Des_s BUSNUMBER_DES
 
typedef struct BusNumber_Des_sPBUSNUMBER_DES
 
typedef struct BusNumber_Range_s BUSNUMBER_RANGE
 
typedef struct BusNumber_Range_sPBUSNUMBER_RANGE
 
typedef struct BusNumber_Resource_s BUSNUMBER_RESOURCE
 
typedef struct BusNumber_Resource_sPBUSNUMBER_RESOURCE
 
typedef struct HWProfileInfo_sA HWPROFILEINFO_A
 
typedef struct HWProfileInfo_sAPHWPROFILEINFO_A
 
typedef struct HWProfileInfo_sW HWPROFILEINFO_W
 
typedef struct HWProfileInfo_sWPHWPROFILEINFO_W
 
typedef HWPROFILEINFO_A HWPROFILEINFO
 
typedef PHWPROFILEINFO_A PHWPROFILEINFO
 

Functions

typedef _Return_type_success_ (return==0) DWORD RETURN_TYPE
 
CMAPI CONFIGRET WINAPI CM_Add_Empty_Log_Conf (_Out_ PLOG_CONF plcLogConf, _In_ DEVINST dnDevInst, _In_ PRIORITY Priority, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Add_Empty_Log_Conf_Ex (_Out_ PLOG_CONF plcLogConf, _In_ DEVINST dnDevInst, _In_ PRIORITY Priority, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Add_IDA (_In_ DEVINST dnDevInst, _In_ PSTR pszID, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Add_ID_ExA (_In_ DEVINST dnDevInst, _In_ PSTR pszID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Add_ID_ExW (_In_ DEVINST dnDevInst, _In_ PWSTR pszID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Add_IDW (_In_ DEVINST dnDevInst, _In_ PWSTR pszID, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Add_Range (_In_ DWORDLONG ullStartValue, _In_ DWORDLONG ullEndValue, _In_ RANGE_LIST rlh, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Add_Res_Des (_Out_opt_ PRES_DES prdResDes, _In_ LOG_CONF lcLogConf, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Add_Res_Des_Ex (_Out_opt_ PRES_DES prdResDes, _In_ LOG_CONF lcLogConf, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Connect_MachineA (_In_opt_ PCSTR UNCServerName, _Out_ PHMACHINE phMachine)
 
CMAPI CONFIGRET WINAPI CM_Connect_MachineW (_In_opt_ PCWSTR UNCServerName, _Out_ PHMACHINE phMachine)
 
CMAPI CONFIGRET WINAPI CM_Create_DevNodeA (_Out_ PDEVINST pdnDevInst, _In_ DEVINSTID_A pDeviceID, _In_ DEVINST dnParent, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Create_DevNodeW (_Out_ PDEVINST pdnDevInst, _In_ DEVINSTID_W pDeviceID, _In_ DEVINST dnParent, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Create_DevNode_ExA (_Out_ PDEVINST pdnDevInst, _In_ DEVINSTID_A pDeviceID, _In_ DEVINST dnParent, _In_ ULONG ulFlags, _In_opt_ HANDLE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Create_DevNode_ExW (_Out_ PDEVINST pdnDevInst, _In_ DEVINSTID_W pDeviceID, _In_ DEVINST dnParent, _In_ ULONG ulFlags, _In_opt_ HANDLE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Create_Range_List (_Out_ PRANGE_LIST prlh, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Delete_Class_Key (_In_ LPGUID ClassGuid, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Delete_Class_Key_Ex (_In_ LPGUID ClassGuid, _In_ ULONG ulFlags, _In_opt_ HANDLE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Delete_DevNode_Key (_In_ DEVNODE dnDevNode, _In_ ULONG ulHardwareProfile, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Delete_DevNode_Key_Ex (_In_ DEVNODE dnDevNode, _In_ ULONG ulHardwareProfile, _In_ ULONG ulFlags, _In_opt_ HANDLE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Delete_Range (_In_ DWORDLONG ullStartValue, _In_ DWORDLONG ullEndValue, _In_ RANGE_LIST rlh, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Detect_Resource_Conflict (_In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _Out_ PBOOL pbConflictDetected, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Detect_Resource_Conflict_Ex (_In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _Out_ PBOOL pbConflictDetected, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Disable_DevNode (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Disable_DevNode_Ex (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Disconnect_Machine (_In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Dup_Range_List (_In_ RANGE_LIST rlhOld, _In_ RANGE_LIST rlhNew, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Enable_DevNode (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Enable_DevNode_Ex (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Enumerate_Classes (_In_ ULONG ulClassIndex, _Out_ LPGUID ClassGuid, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Enumerate_Classes_Ex (_In_ ULONG ulClassIndex, _Out_ LPGUID ClassGuid, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Enumerate_EnumeratorsA (_In_ ULONG ulEnumIndex, _Out_writes_(*pulLength) PCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Enumerate_Enumerators_ExA (_In_ ULONG ulEnumIndex, _Out_writes_(*pulLength) PCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Enumerate_Enumerators_ExW (_In_ ULONG ulEnumIndex, _Out_writes_(*pulLength) PWCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Enumerate_EnumeratorsW (_In_ ULONG ulEnumIndex, _Out_writes_(*pulLength) PWCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Find_Range (_Out_ PDWORDLONG pullStart, _In_ DWORDLONG ullStart, _In_ ULONG ulLength, _In_ DWORDLONG ullAlignment, _In_ DWORDLONG ullEnd, _In_ RANGE_LIST rlh, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_First_Range (_In_ RANGE_LIST rlh, _Out_ PDWORDLONG pullStart, _Out_ PDWORDLONG pullEnd, _Out_ PRANGE_ELEMENT preElement, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Free_Log_Conf (_In_ LOG_CONF lcLogConfToBeFreed, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Free_Log_Conf_Ex (_In_ LOG_CONF lcLogConfToBeFreed, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Free_Log_Conf_Handle (_In_ LOG_CONF lcLogConf)
 
CMAPI CONFIGRET WINAPI CM_Free_Range_List (_In_ RANGE_LIST rlh, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Free_Res_Des (_Out_opt_ PRES_DES prdResDes, _In_ RES_DES rdResDes, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Free_Res_Des_Ex (_Out_opt_ PRES_DES prdResDes, _In_ RES_DES rdResDes, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Free_Res_Des_Handle (_In_ RES_DES rdResDes)
 
CMAPI CONFIGRET WINAPI CM_Free_Resource_Conflict_Handle (_In_ CONFLICT_LIST clConflictList)
 
CMAPI CONFIGRET WINAPI CM_Get_Child (_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Child_Ex (_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_NameA (_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) PCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_NameW (_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) PWCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_Name_ExA (_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) PCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_Name_ExW (_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) PWCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_Key_NameA (_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) LPSTR pszKeyName, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_Key_NameW (_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) LPWSTR pszKeyName, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_Key_Name_ExA (_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) LPSTR pszKeyName, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_Key_Name_ExW (_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) LPWSTR pszKeyName, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Depth (_Out_ PULONG pulDepth, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Depth_Ex (_Out_ PULONG pulDepth, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_IDA (_In_ DEVINST dnDevInst, _Out_writes_(BufferLen) PCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ExA (_In_ DEVINST dnDevInst, _Out_writes_(BufferLen) PCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ExW (_In_ DEVINST dnDevInst, _Out_writes_(BufferLen) PWCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_IDW (_In_ DEVINST dnDevInst, _Out_writes_(BufferLen) PWCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ListA (_In_opt_ PCSTR pszFilter, _Out_writes_(BufferLen) PCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_ExA (_In_opt_ PCSTR pszFilter, _Out_writes_(BufferLen) PCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_ExW (_In_opt_ PCWSTR pszFilter, _Out_writes_(BufferLen) PWCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ListW (_In_opt_ PCWSTR pszFilter, _Out_writes_(BufferLen) PWCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA (_Out_ PULONG pulLen, _In_opt_ PCSTR pszFilter, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA (_Out_ PULONG pulLen, _In_opt_ PCSTR pszFilter, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW (_Out_ PULONG pulLen, _In_opt_ PCWSTR pszFilter, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW (_Out_ PULONG pulLen, _In_opt_ PCWSTR pszFilter, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_Size (_Out_ PULONG pulLen, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_ID_Size_Ex (_Out_ PULONG pulLen, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyA (_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyW (_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExA (_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExW (_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_PropertyA (_In_ DEVINST dnDevInst, _In_ PCSTR pszCustomPropertyName, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_PropertyW (_In_ DEVINST dnDevInst, _In_ PCWSTR pszCustomPropertyName, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_Property_ExA (_In_ DEVINST dnDevInst, _In_ PCSTR pszCustomPropertyName, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_Property_ExW (_In_ DEVINST dnDevInst, _In_ PCWSTR pszCustomPropertyName, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Status (_Out_ PULONG pulStatus, _Out_ PULONG pulProblemNumber, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_DevNode_Status_Ex (_Out_ PULONG pulStatus, _Out_ PULONG pulProblemNumber, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_First_Log_Conf (_Out_opt_ PLOG_CONF plcLogConf, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_First_Log_Conf_Ex (_Out_opt_ PLOG_CONF plcLogConf, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Global_State (_Out_ PULONG pulState, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Global_State_Ex (_Out_ PULONG pulState, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_InfoA (_In_ ULONG ulIndex, _Out_ PHWPROFILEINFO_A pHWProfileInfo, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_Info_ExA (_In_ ULONG ulIndex, _Out_ PHWPROFILEINFO_A pHWProfileInfo, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_InfoW (_In_ ULONG ulIndex, _Out_ PHWPROFILEINFO_W pHWProfileInfo, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_Info_ExW (_In_ ULONG ulIndex, _Out_ PHWPROFILEINFO_W pHWProfileInfo, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_FlagsA (_In_ DEVINSTID_A szDevInstName, _In_ ULONG ulHardwareProfile, _Out_ PULONG pulValue, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_FlagsW (_In_ DEVINSTID_W szDevInstName, _In_ ULONG ulHardwareProfile, _Out_ PULONG pulValue, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExA (_In_ DEVINSTID_A szDevInstName, _In_ ULONG ulHardwareProfile, _Out_ PULONG pulValue, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExW (_In_ DEVINSTID_W szDevInstName, _In_ ULONG ulHardwareProfile, _Out_ PULONG pulValue, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_AliasA (_In_ LPCSTR pszDeviceInterface, _In_ LPGUID AliasInterfaceGuid, _Out_writes_(*pulLength) LPSTR pszAliasDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_AliasW (_In_ LPCWSTR pszDeviceInterface, _In_ LPGUID AliasInterfaceGuid, _Out_writes_(*pulLength) LPWSTR pszAliasDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExA (_In_ LPCSTR pszDeviceInterface, _In_ LPGUID AliasInterfaceGuid, _Out_writes_(*pulLength) LPSTR pszAliasDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExW (_In_ LPCWSTR pszDeviceInterface, _In_ LPGUID AliasInterfaceGuid, _Out_writes_(*pulLength) LPWSTR pszAliasDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_ListA (_In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_A pDeviceID, _Out_writes_(BufferLen) PCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_ListW (_In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_W pDeviceID, _Out_writes_(BufferLen) PWCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_ExA (_In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_A pDeviceID, _Out_writes_(BufferLen) PCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_ExW (_In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_W pDeviceID, _Out_writes_(BufferLen) PWCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_SizeA (_Out_ PULONG pulLen, _In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_A pDeviceID, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_SizeW (_Out_ PULONG pulLen, _In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_W pDeviceID, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExA (_Out_ PULONG pulLen, _In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_A pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExW (_Out_ PULONG pulLen, _In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_W pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Log_Conf_Priority (_In_ LOG_CONF lcLogConf, _Out_ PPRIORITY pPriority, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Log_Conf_Priority_Ex (_In_ LOG_CONF lcLogConf, _Out_ PPRIORITY pPriority, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Next_Log_Conf (_Out_opt_ PLOG_CONF plcLogConf, _In_ LOG_CONF lcLogConf, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Next_Log_Conf_Ex (_Out_opt_ PLOG_CONF plcLogConf, _In_ LOG_CONF lcLogConf, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Next_Res_Des (_Out_ PRES_DES prdResDes, _In_ RES_DES rdResDes, _In_ RESOURCEID ForResource, _Out_opt_ PRESOURCEID pResourceID, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Next_Res_Des_Ex (_Out_ PRES_DES prdResDes, _In_ RES_DES rdResDes, _In_ RESOURCEID ForResource, _Out_opt_ PRESOURCEID pResourceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Parent (_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Parent_Ex (_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data (_In_ RES_DES rdResDes, _Out_writes_bytes_(BufferLen) PVOID Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data_Ex (_In_ RES_DES rdResDes, _Out_writes_bytes_(BufferLen) PVOID Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data_Size (_Out_ PULONG pulSize, _In_ RES_DES rdResDes, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data_Size_Ex (_Out_ PULONG pulSize, _In_ RES_DES rdResDes, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Resource_Conflict_Count (_In_ CONFLICT_LIST clConflictList, _Out_ PULONG pulCount)
 
CMAPI CONFIGRET WINAPI CM_Get_Resource_Conflict_DetailsA (_In_ CONFLICT_LIST clConflictList, _In_ ULONG ulIndex, _Inout_ PCONFLICT_DETAILS_A pConflictDetails)
 
CMAPI CONFIGRET WINAPI CM_Get_Resource_Conflict_DetailsW (_In_ CONFLICT_LIST clConflictList, _In_ ULONG ulIndex, _Inout_ PCONFLICT_DETAILS_W pConflictDetails)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_Registry_PropertyW (_In_ LPGUID ClassGuid, _In_ ULONG ulProperty, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Set_Class_Registry_PropertyW (_In_ LPGUID ClassGuid, _In_ ULONG ulProperty, _In_reads_bytes_opt_(ulLength) PCVOID Buffer, _In_ ULONG ulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Class_Registry_PropertyA (_In_ LPGUID ClassGuid, _In_ ULONG ulProperty, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Set_Class_Registry_PropertyA (_In_ LPGUID ClassGuid, _In_ ULONG ulProperty, _In_reads_bytes_opt_(ulLength) PCVOID Buffer, _In_ ULONG ulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Get_Sibling (_Out_ PDEVINST pdnDevInst, _In_ DEVINST DevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Get_Sibling_Ex (_Out_ PDEVINST pdnDevInst, _In_ DEVINST DevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI WORD WINAPI CM_Get_Version (VOID)
 
CMAPI WORD WINAPI CM_Get_Version_Ex (_In_opt_ HMACHINE hMachine)
 
CMAPI BOOL WINAPI CM_Is_Version_Available (_In_ WORD wVersion)
 
CMAPI BOOL WINAPI CM_Is_Version_Available_Ex (_In_ WORD wVersion, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Intersect_Range_List (_In_ RANGE_LIST rlhOld1, _In_ RANGE_LIST rlhOld2, _In_ RANGE_LIST rlhNew, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Invert_Range_List (_In_ RANGE_LIST rlhOld, _In_ RANGE_LIST rlhNew, _In_ DWORDLONG ullMaxValue, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Is_Dock_Station_Present (_Out_ PBOOL pbPresent)
 
CMAPI CONFIGRET WINAPI CM_Is_Dock_Station_Present_Ex (_Out_ PBOOL pbPresent, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Locate_DevNodeA (_Out_ PDEVINST pdnDevInst, _In_opt_ DEVINSTID_A pDeviceID, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Locate_DevNode_ExA (_Out_ PDEVINST pdnDevInst, _In_opt_ DEVINSTID_A pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Locate_DevNode_ExW (_Out_ PDEVINST pdnDevInst, _In_opt_ DEVINSTID_W pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Locate_DevNodeW (_Out_ PDEVINST pdnDevInst, _In_opt_ DEVINSTID_W pDeviceID, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Merge_Range_List (_In_ RANGE_LIST rlhOld1, _In_ RANGE_LIST rlhOld2, _In_ RANGE_LIST rlhNew, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Modify_Res_Des (_Out_ PRES_DES prdResDes, _In_ RES_DES rdResDes, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Modify_Res_Des_Ex (_Out_ PRES_DES prdResDes, _In_ RES_DES rdResDes, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Move_DevNode (_In_ DEVINST dnFromDevInst, _In_ DEVINST dnToDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Move_DevNode_Ex (_In_ DEVINST dnFromDevInst, _In_ DEVINST dnToDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Next_Range (_Inout_ PRANGE_ELEMENT preElement, _Out_ PDWORDLONG pullStart, _Out_ PDWORDLONG pullEnd, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Open_Class_KeyA (_In_opt_ LPGUID ClassGuid, _In_opt_ LPCSTR pszClassName, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkClass, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Open_Class_KeyW (_In_opt_ LPGUID ClassGuid, _In_opt_ LPCWSTR pszClassName, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkClass, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Open_Class_Key_ExA (_In_opt_ LPGUID pszClassGuid, _In_opt_ LPCSTR pszClassName, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkClass, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Open_Class_Key_ExW (_In_opt_ LPGUID pszClassGuid, _In_opt_ LPCWSTR pszClassName, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkClass, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Open_DevNode_Key (_In_ DEVINST dnDevNode, _In_ REGSAM samDesired, _In_ ULONG ulHardwareProfile, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkDevice, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Open_DevNode_Key_Ex (_In_ DEVINST dnDevNode, _In_ REGSAM samDesired, _In_ ULONG ulHardwareProfile, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkDevice, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Open_Device_Interface_KeyA (_In_ LPCSTR pszDeviceInterface, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkDeviceInterface, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Open_Device_Interface_KeyW (_In_ LPCWSTR pszDeviceInterface, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkDeviceInterface, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Open_Device_Interface_Key_ExA (_In_ LPCSTR pszDeviceInterface, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Open_Device_Interface_Key_ExW (_In_ LPCWSTR pszDeviceInterface, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Delete_Device_Interface_KeyA (_In_ LPCSTR pszDeviceInterface, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Delete_Device_Interface_KeyW (_In_ LPCWSTR pszDeviceInterface, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Delete_Device_Interface_Key_ExA (_In_ LPCSTR pszDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Delete_Device_Interface_Key_ExW (_In_ LPCWSTR pszDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Data (_Out_writes_bytes_(DataLen) PVOID pData, _In_ ULONG DataLen, _In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Data_Ex (_Out_writes_bytes_(DataLen) PVOID pData, _In_ ULONG DataLen, _In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Size (_Out_ PULONG pulSize, _In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Size_Ex (_Out_ PULONG pulSize, _In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Query_Remove_SubTree (_In_ DEVINST dnAncestor, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Query_Remove_SubTree_Ex (_In_ DEVINST dnAncestor, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTreeA (_In_ DEVINST dnAncestor, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTreeW (_In_ DEVINST dnAncestor, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTree_ExA (_In_ DEVINST dnAncestor, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTree_ExW (_In_ DEVINST dnAncestor, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Query_Resource_Conflict_List (_Out_ PCONFLICT_LIST pclConflictList, _In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Reenumerate_DevNode (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Reenumerate_DevNode_Ex (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Register_Device_InterfaceA (_In_ DEVINST dnDevInst, _In_ LPGUID InterfaceClassGuid, _In_opt_ LPCSTR pszReference, _Out_writes_(*pulLength) LPSTR pszDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Register_Device_InterfaceW (_In_ DEVINST dnDevInst, _In_ LPGUID InterfaceClassGuid, _In_opt_ LPCWSTR pszReference, _Out_writes_(*pulLength) LPWSTR pszDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Register_Device_Interface_ExA (_In_ DEVINST dnDevInst, _In_ LPGUID InterfaceClassGuid, _In_opt_ LPCSTR pszReference, _Out_writes_(*pulLength) LPSTR pszDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Register_Device_Interface_ExW (_In_ DEVINST dnDevInst, _In_ LPGUID InterfaceClassGuid, _In_opt_ LPCWSTR pszReference, _Out_writes_(*pulLength) LPWSTR pszDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Request_Device_EjectA (_In_ DEVINST dnDevInst, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Request_Device_Eject_ExW (_In_ DEVINST dnDevInst, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Request_Device_Eject_ExA (_In_ DEVINST dnDevInst, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Request_Device_EjectW (_In_ DEVINST dnDevInst, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Request_Eject_PC (VOID)
 
CMAPI CONFIGRET WINAPI CM_Request_Eject_PC_Ex (_In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Run_Detection (_In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Run_Detection_Ex (_In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CONFIGRET CM_Apply_PowerScheme (VOID)
 
CONFIGRET CM_Write_UserPowerKey (_In_opt_ CONST GUID *SchemeGuid, _In_opt_ CONST GUID *SubGroupOfPowerSettingsGuid, _In_opt_ CONST GUID *PowerSettingGuid, _In_ ULONG AccessFlags, _In_ ULONG Type, _In_reads_bytes_(BufferSize) UCHAR *Buffer, _In_ DWORD BufferSize, _Out_ PDWORD Error)
 
CONFIGRET CM_Set_ActiveScheme (_In_ CONST GUID *SchemeGuid, _Out_ PDWORD Error)
 
CONFIGRET CM_Restore_DefaultPowerScheme (_In_ CONST GUID *SchemeGuid, _Out_ PDWORD Error)
 
CONFIGRET CM_RestoreAll_DefaultPowerSchemes (_Out_ PDWORD Error)
 
CONFIGRET CM_Duplicate_PowerScheme (_In_ CONST GUID *SourceSchemeGuid, _Inout_ GUID **DestinationSchemeGuid, _Out_ PDWORD Error)
 
CONFIGRET CM_Delete_PowerScheme (_In_ CONST GUID *SchemeGuid, _Out_ PDWORD Error)
 
CONFIGRET CM_Import_PowerScheme (_In_ LPCWSTR ImportFileNamePath, _Inout_ GUID **DestinationSchemeGuid, _Out_ PDWORD Error)
 
CMAPI CONFIGRET WINAPI CM_Set_DevNode_Problem (_In_ DEVINST dnDevInst, _In_ ULONG ulProblem, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Set_DevNode_Problem_Ex (_In_ DEVINST dnDevInst, _In_ ULONG ulProblem, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Unregister_Device_InterfaceA (_In_ LPCSTR pszDeviceInterface, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Unregister_Device_InterfaceW (_In_ LPCWSTR pszDeviceInterface, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Unregister_Device_Interface_ExA (_In_ LPCSTR pszDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Unregister_Device_Interface_ExW (_In_ LPCWSTR pszDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Register_Device_Driver (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Register_Device_Driver_Ex (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Remove_SubTree (_In_ DEVINST dnAncestor, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Remove_SubTree_Ex (_In_ DEVINST dnAncestor, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_PropertyA (_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _In_reads_bytes_opt_(ulLength) PCVOID Buffer, _In_ ULONG ulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_PropertyW (_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _In_reads_bytes_opt_(ulLength) PCVOID Buffer, _In_ ULONG ulLength, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExA (_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _In_reads_bytes_opt_(ulLength) PCVOID Buffer, _In_ ULONG ulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExW (_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _In_reads_bytes_opt_(ulLength) PCVOID Buffer, _In_ ULONG ulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Set_HW_Prof (_In_ ULONG ulHardwareProfile, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_Ex (_In_ ULONG ulHardwareProfile, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_FlagsA (_In_ DEVINSTID_A szDevInstName, _In_ ULONG ulConfig, _In_ ULONG ulValue, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_FlagsW (_In_ DEVINSTID_W szDevInstName, _In_ ULONG ulConfig, _In_ ULONG ulValue, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExA (_In_ DEVINSTID_A szDevInstName, _In_ ULONG ulConfig, _In_ ULONG ulValue, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExW (_In_ DEVINSTID_W szDevInstName, _In_ ULONG ulConfig, _In_ ULONG ulValue, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Setup_DevNode (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Setup_DevNode_Ex (_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI CONFIGRET WINAPI CM_Test_Range_Available (_In_ DWORDLONG ullStartValue, _In_ DWORDLONG ullEndValue, _In_ RANGE_LIST rlh, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Uninstall_DevNode (_In_ DEVINST dnPhantom, _In_ ULONG ulFlags)
 
CMAPI CONFIGRET WINAPI CM_Uninstall_DevNode_Ex (_In_ DEVINST dnPhantom, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
 
CMAPI DWORD WINAPI CMP_WaitNoPendingInstallEvents (_In_ DWORD dwTimeout)
 

Macro Definition Documentation

◆ _CFGMGR32_H_

#define _CFGMGR32_H_

Definition at line 26 of file cfgmgr32.h.

◆ ALLOC_LOG_CONF

#define ALLOC_LOG_CONF   0x00000002

Definition at line 598 of file cfgmgr32.h.

◆ BASIC_LOG_CONF

#define BASIC_LOG_CONF   0x00000000

Definition at line 596 of file cfgmgr32.h.

◆ BOOT_LOG_CONF

#define BOOT_LOG_CONF   0x00000003

Definition at line 599 of file cfgmgr32.h.

◆ BusNumberType_Range

#define BusNumberType_Range   sizeof(BUSNUMBER_RANGE)

Definition at line 542 of file cfgmgr32.h.

◆ CM_Add_ID

#define CM_Add_ID   CM_Add_IDA

Definition at line 1021 of file cfgmgr32.h.

◆ CM_ADD_ID_BITS

#define CM_ADD_ID_BITS   0x00000001

Definition at line 616 of file cfgmgr32.h.

◆ CM_ADD_ID_COMPATIBLE

#define CM_ADD_ID_COMPATIBLE   0x00000001

Definition at line 615 of file cfgmgr32.h.

◆ CM_Add_ID_Ex

#define CM_Add_ID_Ex   CM_Add_ID_ExA

Definition at line 1022 of file cfgmgr32.h.

◆ CM_ADD_ID_HARDWARE

#define CM_ADD_ID_HARDWARE   0x00000000

Definition at line 614 of file cfgmgr32.h.

◆ CM_ADD_RANGE_ADDIFCONFLICT

#define CM_ADD_RANGE_ADDIFCONFLICT   0x00000000

Definition at line 592 of file cfgmgr32.h.

◆ CM_ADD_RANGE_BITS

#define CM_ADD_RANGE_BITS   0x00000001

Definition at line 594 of file cfgmgr32.h.

◆ CM_ADD_RANGE_DONOTADDIFCONFLICT

#define CM_ADD_RANGE_DONOTADDIFCONFLICT   0x00000001

Definition at line 593 of file cfgmgr32.h.

◆ CM_CDFLAGS_DRIVER

#define CM_CDFLAGS_DRIVER   0x00000001

Definition at line 148 of file cfgmgr32.h.

◆ CM_CDFLAGS_RESERVED

#define CM_CDFLAGS_RESERVED   0x00000004

Definition at line 150 of file cfgmgr32.h.

◆ CM_CDFLAGS_ROOT_OWNED

#define CM_CDFLAGS_ROOT_OWNED   0x00000002

Definition at line 149 of file cfgmgr32.h.

◆ CM_CDMASK_DESCRIPTION

#define CM_CDMASK_DESCRIPTION   0x00000008

Definition at line 144 of file cfgmgr32.h.

◆ CM_CDMASK_DEVINST

#define CM_CDMASK_DEVINST   0x00000001

Definition at line 141 of file cfgmgr32.h.

◆ CM_CDMASK_FLAGS

#define CM_CDMASK_FLAGS   0x00000004

Definition at line 143 of file cfgmgr32.h.

◆ CM_CDMASK_RESDES

#define CM_CDMASK_RESDES   0x00000002

Definition at line 142 of file cfgmgr32.h.

◆ CM_CDMASK_VALID

#define CM_CDMASK_VALID   0x0000000F

Definition at line 145 of file cfgmgr32.h.

◆ CM_Connect_Machine

#define CM_Connect_Machine   CM_Connect_MachineA

Definition at line 1074 of file cfgmgr32.h.

◆ CM_Create_DevInst

#define CM_Create_DevInst   CM_Create_DevNodeA

Definition at line 1126 of file cfgmgr32.h.

◆ CM_CREATE_DEVINST_BITS

#define CM_CREATE_DEVINST_BITS   CM_CREATE_DEVNODE_BITS

Definition at line 631 of file cfgmgr32.h.

◆ CM_CREATE_DEVINST_DO_NOT_INSTALL

#define CM_CREATE_DEVINST_DO_NOT_INSTALL   CM_CREATE_DEVNODE_DO_NOT_INSTALL

Definition at line 630 of file cfgmgr32.h.

◆ CM_Create_DevInst_Ex

#define CM_Create_DevInst_Ex   CM_Create_DevNode_ExA

Definition at line 1128 of file cfgmgr32.h.

◆ CM_Create_DevInst_ExA

#define CM_Create_DevInst_ExA   CM_Create_DevNode_ExA

Definition at line 1118 of file cfgmgr32.h.

◆ CM_Create_DevInst_ExW

#define CM_Create_DevInst_ExW   CM_Create_DevNode_ExW

Definition at line 1117 of file cfgmgr32.h.

◆ CM_CREATE_DEVINST_GENERATE_ID

#define CM_CREATE_DEVINST_GENERATE_ID   CM_CREATE_DEVNODE_GENERATE_ID

Definition at line 629 of file cfgmgr32.h.

◆ CM_CREATE_DEVINST_NO_WAIT_INSTALL

#define CM_CREATE_DEVINST_NO_WAIT_INSTALL   CM_CREATE_DEVNODE_NO_WAIT_INSTALL

Definition at line 627 of file cfgmgr32.h.

◆ CM_CREATE_DEVINST_NORMAL

#define CM_CREATE_DEVINST_NORMAL   CM_CREATE_DEVNODE_NORMAL

Definition at line 626 of file cfgmgr32.h.

◆ CM_CREATE_DEVINST_PHANTOM

#define CM_CREATE_DEVINST_PHANTOM   CM_CREATE_DEVNODE_PHANTOM

Definition at line 628 of file cfgmgr32.h.

◆ CM_Create_DevInstA

#define CM_Create_DevInstA   CM_Create_DevNodeA

Definition at line 1116 of file cfgmgr32.h.

◆ CM_Create_DevInstW

#define CM_Create_DevInstW   CM_Create_DevNodeW

Definition at line 1115 of file cfgmgr32.h.

◆ CM_Create_DevNode

#define CM_Create_DevNode   CM_Create_DevNodeA

Definition at line 1125 of file cfgmgr32.h.

◆ CM_CREATE_DEVNODE_BITS

#define CM_CREATE_DEVNODE_BITS   0x0000000F

Definition at line 624 of file cfgmgr32.h.

◆ CM_CREATE_DEVNODE_DO_NOT_INSTALL

#define CM_CREATE_DEVNODE_DO_NOT_INSTALL   0x00000008

Definition at line 623 of file cfgmgr32.h.

◆ CM_Create_DevNode_Ex

#define CM_Create_DevNode_Ex   CM_Create_DevNode_ExA

Definition at line 1127 of file cfgmgr32.h.

◆ CM_CREATE_DEVNODE_GENERATE_ID

#define CM_CREATE_DEVNODE_GENERATE_ID   0x00000004

Definition at line 622 of file cfgmgr32.h.

◆ CM_CREATE_DEVNODE_NO_WAIT_INSTALL

#define CM_CREATE_DEVNODE_NO_WAIT_INSTALL   0x00000001

Definition at line 620 of file cfgmgr32.h.

◆ CM_CREATE_DEVNODE_NORMAL

#define CM_CREATE_DEVNODE_NORMAL   0x00000000

Definition at line 619 of file cfgmgr32.h.

◆ CM_CREATE_DEVNODE_PHANTOM

#define CM_CREATE_DEVNODE_PHANTOM   0x00000002

Definition at line 621 of file cfgmgr32.h.

◆ CM_CRP_CHARACTERISTICS

#define CM_CRP_CHARACTERISTICS   CM_DRP_CHARACTERISTICS

Definition at line 714 of file cfgmgr32.h.

◆ CM_CRP_DEVTYPE

#define CM_CRP_DEVTYPE   CM_DRP_DEVTYPE

Definition at line 710 of file cfgmgr32.h.

◆ CM_CRP_EXCLUSIVE

#define CM_CRP_EXCLUSIVE   CM_DRP_EXCLUSIVE

Definition at line 712 of file cfgmgr32.h.

◆ CM_CRP_LOWERFILTERS

#define CM_CRP_LOWERFILTERS   CM_DRP_LOWERFILTERS

Definition at line 699 of file cfgmgr32.h.

◆ CM_CRP_MAX

#define CM_CRP_MAX   CM_DRP_MAX

Definition at line 733 of file cfgmgr32.h.

◆ CM_CRP_MIN

#define CM_CRP_MIN   CM_DRP_MIN

Definition at line 731 of file cfgmgr32.h.

◆ CM_CRP_SECURITY

#define CM_CRP_SECURITY   CM_DRP_SECURITY

Definition at line 706 of file cfgmgr32.h.

◆ CM_CRP_SECURITY_SDS

#define CM_CRP_SECURITY_SDS   CM_DRP_SECURITY_SDS

Definition at line 708 of file cfgmgr32.h.

◆ CM_CRP_UPPERFILTERS

#define CM_CRP_UPPERFILTERS   CM_DRP_UPPERFILTERS

Definition at line 695 of file cfgmgr32.h.

◆ CM_CUSTOMDEVPROP_BITS

#define CM_CUSTOMDEVPROP_BITS   0x00000001

Definition at line 836 of file cfgmgr32.h.

◆ CM_CUSTOMDEVPROP_MERGE_MULTISZ

#define CM_CUSTOMDEVPROP_MERGE_MULTISZ   0x00000001

Definition at line 835 of file cfgmgr32.h.

◆ CM_DELETE_CLASS_BITS

#define CM_DELETE_CLASS_BITS   0x00000003

Definition at line 639 of file cfgmgr32.h.

◆ CM_DELETE_CLASS_INTERFACE

#define CM_DELETE_CLASS_INTERFACE   0x00000002

Definition at line 637 of file cfgmgr32.h.

◆ CM_DELETE_CLASS_ONLY

#define CM_DELETE_CLASS_ONLY   0x00000000

Definition at line 634 of file cfgmgr32.h.

◆ CM_DELETE_CLASS_SUBKEYS

#define CM_DELETE_CLASS_SUBKEYS   0x00000001

Definition at line 635 of file cfgmgr32.h.

◆ CM_Delete_Device_Interface_Key

#define CM_Delete_Device_Interface_Key   CM_Delete_Device_Interface_KeyA

Definition at line 2636 of file cfgmgr32.h.

◆ CM_Delete_Device_Interface_Key_Ex

#define CM_Delete_Device_Interface_Key_Ex   CM_Delete_Device_Interface_Key_ExA

Definition at line 2637 of file cfgmgr32.h.

◆ CM_Delete_DevInst_Key

#define CM_Delete_DevInst_Key   CM_Delete_DevNode_Key

Definition at line 1170 of file cfgmgr32.h.

◆ CM_Delete_DevInst_Key_Ex

#define CM_Delete_DevInst_Key_Ex   CM_Delete_DevNode_Key_Ex

Definition at line 1171 of file cfgmgr32.h.

◆ CM_DETECT_BITS

#define CM_DETECT_BITS   0x80000007

Definition at line 646 of file cfgmgr32.h.

◆ CM_DETECT_CRASHED

#define CM_DETECT_CRASHED   0x00000002

Definition at line 643 of file cfgmgr32.h.

◆ CM_DETECT_HWPROF_FIRST_BOOT

#define CM_DETECT_HWPROF_FIRST_BOOT   0x00000004

Definition at line 644 of file cfgmgr32.h.

◆ CM_DETECT_NEW_PROFILE

#define CM_DETECT_NEW_PROFILE   0x00000001

Definition at line 642 of file cfgmgr32.h.

◆ CM_DETECT_RUN

#define CM_DETECT_RUN   0x80000000

Definition at line 645 of file cfgmgr32.h.

◆ CM_DEVCAP_DOCKDEVICE

#define CM_DEVCAP_DOCKDEVICE   0x00000008

Definition at line 738 of file cfgmgr32.h.

◆ CM_DEVCAP_EJECTSUPPORTED

#define CM_DEVCAP_EJECTSUPPORTED   0x00000002

Definition at line 736 of file cfgmgr32.h.

◆ CM_DEVCAP_HARDWAREDISABLED

#define CM_DEVCAP_HARDWAREDISABLED   0x00000100

Definition at line 743 of file cfgmgr32.h.

◆ CM_DEVCAP_LOCKSUPPORTED

#define CM_DEVCAP_LOCKSUPPORTED   0x00000001

Definition at line 735 of file cfgmgr32.h.

◆ CM_DEVCAP_NONDYNAMIC

#define CM_DEVCAP_NONDYNAMIC   0x00000200

Definition at line 744 of file cfgmgr32.h.

◆ CM_DEVCAP_RAWDEVICEOK

#define CM_DEVCAP_RAWDEVICEOK   0x00000040

Definition at line 741 of file cfgmgr32.h.

◆ CM_DEVCAP_REMOVABLE

#define CM_DEVCAP_REMOVABLE   0x00000004

Definition at line 737 of file cfgmgr32.h.

◆ CM_DEVCAP_SILENTINSTALL

#define CM_DEVCAP_SILENTINSTALL   0x00000020

Definition at line 740 of file cfgmgr32.h.

◆ CM_DEVCAP_SURPRISEREMOVALOK

#define CM_DEVCAP_SURPRISEREMOVALOK   0x00000080

Definition at line 742 of file cfgmgr32.h.

◆ CM_DEVCAP_UNIQUEID

#define CM_DEVCAP_UNIQUEID   0x00000010

Definition at line 739 of file cfgmgr32.h.

◆ CM_DISABLE_ABSOLUTE

#define CM_DISABLE_ABSOLUTE   0x00000001

Definition at line 649 of file cfgmgr32.h.

◆ CM_DISABLE_BITS

#define CM_DISABLE_BITS   0x00000007

Definition at line 652 of file cfgmgr32.h.

◆ CM_Disable_DevInst

#define CM_Disable_DevInst   CM_Disable_DevNode

Definition at line 1220 of file cfgmgr32.h.

◆ CM_Disable_DevInst_Ex

#define CM_Disable_DevInst_Ex   CM_Disable_DevNode_Ex

Definition at line 1221 of file cfgmgr32.h.

◆ CM_DISABLE_HARDWARE

#define CM_DISABLE_HARDWARE   0x00000002

Definition at line 650 of file cfgmgr32.h.

◆ CM_DISABLE_POLITE

#define CM_DISABLE_POLITE   0x00000000

Definition at line 648 of file cfgmgr32.h.

◆ CM_DISABLE_UI_NOT_OK

#define CM_DISABLE_UI_NOT_OK   0x00000004

Definition at line 651 of file cfgmgr32.h.

◆ CM_DRP_ADDRESS

#define CM_DRP_ADDRESS   0x0000001D

Definition at line 715 of file cfgmgr32.h.

◆ CM_DRP_BASE_CONTAINERID

#define CM_DRP_BASE_CONTAINERID   0x00000025

Definition at line 728 of file cfgmgr32.h.

◆ CM_DRP_BUSNUMBER

#define CM_DRP_BUSNUMBER   0x00000016

Definition at line 703 of file cfgmgr32.h.

◆ CM_DRP_BUSTYPEGUID

#define CM_DRP_BUSTYPEGUID   0x00000014

Definition at line 701 of file cfgmgr32.h.

◆ CM_DRP_CAPABILITIES

#define CM_DRP_CAPABILITIES   0x00000010

Definition at line 691 of file cfgmgr32.h.

◆ CM_DRP_CHARACTERISTICS

#define CM_DRP_CHARACTERISTICS   0x0000001C

Definition at line 713 of file cfgmgr32.h.

◆ CM_DRP_CLASS

#define CM_DRP_CLASS   0x00000008

Definition at line 683 of file cfgmgr32.h.

◆ CM_DRP_CLASSGUID

#define CM_DRP_CLASSGUID   0x00000009

Definition at line 684 of file cfgmgr32.h.

◆ CM_DRP_COMPATIBLEIDS

#define CM_DRP_COMPATIBLEIDS   0x00000003

Definition at line 678 of file cfgmgr32.h.

◆ CM_DRP_CONFIGFLAGS

#define CM_DRP_CONFIGFLAGS   0x0000000B

Definition at line 686 of file cfgmgr32.h.

◆ CM_DRP_DEVICE_POWER_DATA

#define CM_DRP_DEVICE_POWER_DATA   0x0000001F

Definition at line 718 of file cfgmgr32.h.

◆ CM_DRP_DEVICEDESC

#define CM_DRP_DEVICEDESC   0x00000001

Definition at line 676 of file cfgmgr32.h.

◆ CM_DRP_DEVTYPE

#define CM_DRP_DEVTYPE   0x0000001A

Definition at line 709 of file cfgmgr32.h.

◆ CM_DRP_DRIVER

#define CM_DRP_DRIVER   0x0000000A

Definition at line 685 of file cfgmgr32.h.

◆ CM_DRP_ENUMERATOR_NAME

#define CM_DRP_ENUMERATOR_NAME   0x00000017

Definition at line 704 of file cfgmgr32.h.

◆ CM_DRP_EXCLUSIVE

#define CM_DRP_EXCLUSIVE   0x0000001B

Definition at line 711 of file cfgmgr32.h.

◆ CM_DRP_FRIENDLYNAME

#define CM_DRP_FRIENDLYNAME   0x0000000D

Definition at line 688 of file cfgmgr32.h.

◆ CM_DRP_HARDWAREID

#define CM_DRP_HARDWAREID   0x00000002

Definition at line 677 of file cfgmgr32.h.

◆ CM_DRP_INSTALL_STATE

#define CM_DRP_INSTALL_STATE   0x00000023

Definition at line 722 of file cfgmgr32.h.

◆ CM_DRP_LEGACYBUSTYPE

#define CM_DRP_LEGACYBUSTYPE   0x00000015

Definition at line 702 of file cfgmgr32.h.

◆ CM_DRP_LOCATION_INFORMATION

#define CM_DRP_LOCATION_INFORMATION   0x0000000E

Definition at line 689 of file cfgmgr32.h.

◆ CM_DRP_LOCATION_PATHS

#define CM_DRP_LOCATION_PATHS   0x00000024

Definition at line 725 of file cfgmgr32.h.

◆ CM_DRP_LOWERFILTERS

#define CM_DRP_LOWERFILTERS   0x00000013

Definition at line 697 of file cfgmgr32.h.

◆ CM_DRP_MAX

#define CM_DRP_MAX   0x00000025

Definition at line 732 of file cfgmgr32.h.

◆ CM_DRP_MFG

#define CM_DRP_MFG   0x0000000C

Definition at line 687 of file cfgmgr32.h.

◆ CM_DRP_MIN

#define CM_DRP_MIN   0x00000001

Definition at line 730 of file cfgmgr32.h.

◆ CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME

#define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME   0x0000000F

Definition at line 690 of file cfgmgr32.h.

◆ CM_DRP_REMOVAL_POLICY

#define CM_DRP_REMOVAL_POLICY   0x00000020

Definition at line 719 of file cfgmgr32.h.

◆ CM_DRP_REMOVAL_POLICY_HW_DEFAULT

#define CM_DRP_REMOVAL_POLICY_HW_DEFAULT   0x00000021

Definition at line 720 of file cfgmgr32.h.

◆ CM_DRP_REMOVAL_POLICY_OVERRIDE

#define CM_DRP_REMOVAL_POLICY_OVERRIDE   0x00000022

Definition at line 721 of file cfgmgr32.h.

◆ CM_DRP_SECURITY

#define CM_DRP_SECURITY   0x00000018

Definition at line 705 of file cfgmgr32.h.

◆ CM_DRP_SECURITY_SDS

#define CM_DRP_SECURITY_SDS   0x00000019

Definition at line 707 of file cfgmgr32.h.

◆ CM_DRP_SERVICE

#define CM_DRP_SERVICE   0x00000005

Definition at line 680 of file cfgmgr32.h.

◆ CM_DRP_UI_NUMBER

#define CM_DRP_UI_NUMBER   0x00000011

Definition at line 692 of file cfgmgr32.h.

◆ CM_DRP_UI_NUMBER_DESC_FORMAT

#define CM_DRP_UI_NUMBER_DESC_FORMAT   0x0000001E

Definition at line 716 of file cfgmgr32.h.

◆ CM_DRP_UNUSED0

#define CM_DRP_UNUSED0   0x00000004

Definition at line 679 of file cfgmgr32.h.

◆ CM_DRP_UNUSED1

#define CM_DRP_UNUSED1   0x00000006

Definition at line 681 of file cfgmgr32.h.

◆ CM_DRP_UNUSED2

#define CM_DRP_UNUSED2   0x00000007

Definition at line 682 of file cfgmgr32.h.

◆ CM_DRP_UPPERFILTERS

#define CM_DRP_UPPERFILTERS   0x00000012

Definition at line 693 of file cfgmgr32.h.

◆ CM_Enable_DevInst

#define CM_Enable_DevInst   CM_Enable_DevNode

Definition at line 1252 of file cfgmgr32.h.

◆ CM_Enable_DevInst_Ex

#define CM_Enable_DevInst_Ex   CM_Enable_DevNode_Ex

Definition at line 1253 of file cfgmgr32.h.

◆ CM_Enumerate_Enumerators

#define CM_Enumerate_Enumerators   CM_Enumerate_EnumeratorsA

Definition at line 1314 of file cfgmgr32.h.

◆ CM_Enumerate_Enumerators_Ex

#define CM_Enumerate_Enumerators_Ex   CM_Enumerate_Enumerators_ExA

Definition at line 1315 of file cfgmgr32.h.

◆ CM_Get_Class_Key_Name

#define CM_Get_Class_Key_Name   CM_Get_Class_Key_NameA

Definition at line 1502 of file cfgmgr32.h.

◆ CM_Get_Class_Key_Name_Ex

#define CM_Get_Class_Key_Name_Ex   CM_Get_Class_Key_Name_ExA

Definition at line 1503 of file cfgmgr32.h.

◆ CM_Get_Class_Name

#define CM_Get_Class_Name   CM_Get_Class_NameA

Definition at line 1456 of file cfgmgr32.h.

◆ CM_Get_Class_Name_Ex

#define CM_Get_Class_Name_Ex   CM_Get_Class_Name_ExA

Definition at line 1457 of file cfgmgr32.h.

◆ CM_Get_Class_Registry_Property

#define CM_Get_Class_Registry_Property   CM_Get_Class_Registry_PropertyA

Definition at line 2278 of file cfgmgr32.h.

◆ CM_Get_Device_ID

#define CM_Get_Device_ID   CM_Get_Device_IDA

Definition at line 1565 of file cfgmgr32.h.

◆ CM_Get_Device_ID_Ex

#define CM_Get_Device_ID_Ex   CM_Get_Device_ID_ExA

Definition at line 1566 of file cfgmgr32.h.

◆ CM_Get_Device_ID_List

#define CM_Get_Device_ID_List   CM_Get_Device_ID_ListA

Definition at line 1611 of file cfgmgr32.h.

◆ CM_Get_Device_ID_List_Ex

#define CM_Get_Device_ID_List_Ex   CM_Get_Device_ID_List_ExA

Definition at line 1612 of file cfgmgr32.h.

◆ CM_Get_Device_ID_List_Size

#define CM_Get_Device_ID_List_Size   CM_Get_Device_ID_List_SizeA

Definition at line 1653 of file cfgmgr32.h.

◆ CM_Get_Device_ID_List_Size_Ex

#define CM_Get_Device_ID_List_Size_Ex   CM_Get_Device_ID_List_Size_ExA

Definition at line 1654 of file cfgmgr32.h.

◆ CM_Get_Device_Interface_Alias

#define CM_Get_Device_Interface_Alias   CM_Get_Device_Interface_AliasA

Definition at line 1991 of file cfgmgr32.h.

◆ CM_Get_Device_Interface_Alias_Ex

#define CM_Get_Device_Interface_Alias_Ex   CM_Get_Device_Interface_Alias_ExA

Definition at line 1992 of file cfgmgr32.h.

◆ CM_Get_Device_Interface_List

#define CM_Get_Device_Interface_List   CM_Get_Device_Interface_ListA

Definition at line 2041 of file cfgmgr32.h.

◆ CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES

#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES   0x00000001

Definition at line 673 of file cfgmgr32.h.

◆ CM_GET_DEVICE_INTERFACE_LIST_BITS

#define CM_GET_DEVICE_INTERFACE_LIST_BITS   0x00000001

Definition at line 674 of file cfgmgr32.h.

◆ CM_Get_Device_Interface_List_Ex

#define CM_Get_Device_Interface_List_Ex   CM_Get_Device_Interface_List_ExA

Definition at line 2042 of file cfgmgr32.h.

◆ CM_GET_DEVICE_INTERFACE_LIST_PRESENT

#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT   0x00000000

Definition at line 672 of file cfgmgr32.h.

◆ CM_Get_Device_Interface_List_Size

#define CM_Get_Device_Interface_List_Size   CM_Get_Device_Interface_List_SizeA

Definition at line 2087 of file cfgmgr32.h.

◆ CM_Get_Device_Interface_List_Size_Ex

#define CM_Get_Device_Interface_List_Size_Ex   CM_Get_Device_Interface_List_Size_ExA

Definition at line 2088 of file cfgmgr32.h.

◆ CM_Get_DevInst_Custom_Property

#define CM_Get_DevInst_Custom_Property   CM_Get_DevNode_Custom_PropertyA

Definition at line 1795 of file cfgmgr32.h.

◆ CM_Get_DevInst_Custom_Property_Ex

#define CM_Get_DevInst_Custom_Property_Ex   CM_Get_DevNode_Custom_Property_ExA

Definition at line 1796 of file cfgmgr32.h.

◆ CM_Get_DevInst_Custom_Property_ExA

#define CM_Get_DevInst_Custom_Property_ExA   CM_Get_DevNode_Custom_Property_ExA

Definition at line 1788 of file cfgmgr32.h.

◆ CM_Get_DevInst_Custom_Property_ExW

#define CM_Get_DevInst_Custom_Property_ExW   CM_Get_DevNode_Custom_Property_ExW

Definition at line 1787 of file cfgmgr32.h.

◆ CM_Get_DevInst_Custom_PropertyA

#define CM_Get_DevInst_Custom_PropertyA   CM_Get_DevNode_Custom_PropertyA

Definition at line 1786 of file cfgmgr32.h.

◆ CM_Get_DevInst_Custom_PropertyW

#define CM_Get_DevInst_Custom_PropertyW   CM_Get_DevNode_Custom_PropertyW

Definition at line 1785 of file cfgmgr32.h.

◆ CM_Get_DevInst_Registry_Property

#define CM_Get_DevInst_Registry_Property   CM_Get_DevNode_Registry_PropertyA

Definition at line 1731 of file cfgmgr32.h.

◆ CM_Get_DevInst_Registry_Property_Ex

#define CM_Get_DevInst_Registry_Property_Ex   CM_Get_DevNode_Registry_Property_ExA

Definition at line 1732 of file cfgmgr32.h.

◆ CM_Get_DevInst_Registry_Property_ExA

#define CM_Get_DevInst_Registry_Property_ExA   CM_Get_DevNode_Registry_Property_ExA

Definition at line 1723 of file cfgmgr32.h.

◆ CM_Get_DevInst_Registry_Property_ExW

#define CM_Get_DevInst_Registry_Property_ExW   CM_Get_DevNode_Registry_Property_ExW

Definition at line 1722 of file cfgmgr32.h.

◆ CM_Get_DevInst_Registry_PropertyA

#define CM_Get_DevInst_Registry_PropertyA   CM_Get_DevNode_Registry_PropertyA

Definition at line 1721 of file cfgmgr32.h.

◆ CM_Get_DevInst_Registry_PropertyW

#define CM_Get_DevInst_Registry_PropertyW   CM_Get_DevNode_Registry_PropertyW

Definition at line 1720 of file cfgmgr32.h.

◆ CM_Get_DevInst_Status

#define CM_Get_DevInst_Status   CM_Get_DevNode_Status

Definition at line 1822 of file cfgmgr32.h.

◆ CM_Get_DevInst_Status_Ex

#define CM_Get_DevInst_Status_Ex   CM_Get_DevNode_Status_Ex

Definition at line 1823 of file cfgmgr32.h.

◆ CM_Get_DevNode_Custom_Property

#define CM_Get_DevNode_Custom_Property   CM_Get_DevNode_Custom_PropertyA

Definition at line 1797 of file cfgmgr32.h.

◆ CM_Get_DevNode_Custom_Property_Ex

#define CM_Get_DevNode_Custom_Property_Ex   CM_Get_DevNode_Custom_Property_ExA

Definition at line 1798 of file cfgmgr32.h.

◆ CM_Get_DevNode_Registry_Property

#define CM_Get_DevNode_Registry_Property   CM_Get_DevNode_Registry_PropertyA

Definition at line 1733 of file cfgmgr32.h.

◆ CM_Get_DevNode_Registry_Property_Ex

#define CM_Get_DevNode_Registry_Property_Ex   CM_Get_DevNode_Registry_Property_ExA

Definition at line 1734 of file cfgmgr32.h.

◆ CM_Get_Hardware_Profile_Info

#define CM_Get_Hardware_Profile_Info   CM_Get_Hardware_Profile_InfoA

Definition at line 1895 of file cfgmgr32.h.

◆ CM_Get_Hardware_Profile_Info_Ex

#define CM_Get_Hardware_Profile_Info_Ex   CM_Get_Hardware_Profile_Info_ExA

Definition at line 1896 of file cfgmgr32.h.

◆ CM_Get_HW_Prof_Flags

#define CM_Get_HW_Prof_Flags   CM_Get_HW_Prof_FlagsA

Definition at line 1941 of file cfgmgr32.h.

◆ CM_Get_HW_Prof_Flags_Ex

#define CM_Get_HW_Prof_Flags_Ex   CM_Get_HW_Prof_Flags_ExA

Definition at line 1942 of file cfgmgr32.h.

◆ CM_Get_Resource_Conflict_Details

#define CM_Get_Resource_Conflict_Details   CM_Get_Resource_Conflict_DetailsA

Definition at line 2225 of file cfgmgr32.h.

◆ CM_GETIDLIST_DONOTGENERATE

#define CM_GETIDLIST_DONOTGENERATE   0x10000040

Definition at line 661 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_BITS [1/2]

#define CM_GETIDLIST_FILTER_BITS   0x1000007F

Definition at line 669 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_BITS [2/2]

#define CM_GETIDLIST_FILTER_BITS   0x100003FF

Definition at line 669 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_BUSRELATIONS

#define CM_GETIDLIST_FILTER_BUSRELATIONS   0x00000020

Definition at line 660 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_CLASS

#define CM_GETIDLIST_FILTER_CLASS   0x00000200

Definition at line 668 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_EJECTRELATIONS

#define CM_GETIDLIST_FILTER_EJECTRELATIONS   0x00000004

Definition at line 657 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_ENUMERATOR

#define CM_GETIDLIST_FILTER_ENUMERATOR   0x00000001

Definition at line 655 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_NONE

#define CM_GETIDLIST_FILTER_NONE   0x00000000

Definition at line 654 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_POWERRELATIONS

#define CM_GETIDLIST_FILTER_POWERRELATIONS   0x00000010

Definition at line 659 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_PRESENT

#define CM_GETIDLIST_FILTER_PRESENT   0x00000100

Definition at line 667 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_REMOVALRELATIONS

#define CM_GETIDLIST_FILTER_REMOVALRELATIONS   0x00000008

Definition at line 658 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_SERVICE

#define CM_GETIDLIST_FILTER_SERVICE   0x00000002

Definition at line 656 of file cfgmgr32.h.

◆ CM_GETIDLIST_FILTER_TRANSPORTRELATIONS

#define CM_GETIDLIST_FILTER_TRANSPORTRELATIONS   0x00000080

Definition at line 666 of file cfgmgr32.h.

◆ CM_GLOBAL_STATE_CAN_DO_UI

#define CM_GLOBAL_STATE_CAN_DO_UI   0x00000001

Definition at line 908 of file cfgmgr32.h.

◆ CM_GLOBAL_STATE_DETECTION_PENDING

#define CM_GLOBAL_STATE_DETECTION_PENDING   0x00000010

Definition at line 912 of file cfgmgr32.h.

◆ CM_GLOBAL_STATE_ON_BIG_STACK

#define CM_GLOBAL_STATE_ON_BIG_STACK   0x00000002

Definition at line 909 of file cfgmgr32.h.

◆ CM_GLOBAL_STATE_REBOOT_REQUIRED

#define CM_GLOBAL_STATE_REBOOT_REQUIRED   0x00000020

Definition at line 914 of file cfgmgr32.h.

◆ CM_GLOBAL_STATE_SERVICES_AVAILABLE

#define CM_GLOBAL_STATE_SERVICES_AVAILABLE   0x00000004

Definition at line 910 of file cfgmgr32.h.

◆ CM_GLOBAL_STATE_SHUTTING_DOWN

#define CM_GLOBAL_STATE_SHUTTING_DOWN   0x00000008

Definition at line 911 of file cfgmgr32.h.

◆ CM_HWPI_DOCKED

#define CM_HWPI_DOCKED   0x00000002

Definition at line 551 of file cfgmgr32.h.

◆ CM_HWPI_NOT_DOCKABLE

#define CM_HWPI_NOT_DOCKABLE   0x00000000

Definition at line 549 of file cfgmgr32.h.

◆ CM_HWPI_UNDOCKED

#define CM_HWPI_UNDOCKED   0x00000001

Definition at line 550 of file cfgmgr32.h.

◆ CM_INSTALL_STATE_FAILED_INSTALL

#define CM_INSTALL_STATE_FAILED_INSTALL   2

Definition at line 754 of file cfgmgr32.h.

◆ CM_INSTALL_STATE_FINISH_INSTALL

#define CM_INSTALL_STATE_FINISH_INSTALL   3

Definition at line 755 of file cfgmgr32.h.

◆ CM_INSTALL_STATE_INSTALLED

#define CM_INSTALL_STATE_INSTALLED   0

Definition at line 752 of file cfgmgr32.h.

◆ CM_INSTALL_STATE_NEEDS_REINSTALL

#define CM_INSTALL_STATE_NEEDS_REINSTALL   1

Definition at line 753 of file cfgmgr32.h.

◆ CM_Locate_DevInst

#define CM_Locate_DevInst   CM_Locate_DevNodeA

Definition at line 2404 of file cfgmgr32.h.

◆ CM_LOCATE_DEVINST_BITS

#define CM_LOCATE_DEVINST_BITS   CM_LOCATE_DEVNODE_BITS

Definition at line 770 of file cfgmgr32.h.

◆ CM_LOCATE_DEVINST_CANCELREMOVE

#define CM_LOCATE_DEVINST_CANCELREMOVE   CM_LOCATE_DEVNODE_CANCELREMOVE

Definition at line 768 of file cfgmgr32.h.

◆ CM_Locate_DevInst_Ex

#define CM_Locate_DevInst_Ex   CM_Locate_DevNode_ExA

Definition at line 2406 of file cfgmgr32.h.

◆ CM_Locate_DevInst_ExA

#define CM_Locate_DevInst_ExA   CM_Locate_DevNode_ExA

Definition at line 2394 of file cfgmgr32.h.

◆ CM_Locate_DevInst_ExW

#define CM_Locate_DevInst_ExW   CM_Locate_DevNode_ExW

Definition at line 2395 of file cfgmgr32.h.

◆ CM_LOCATE_DEVINST_NORMAL

#define CM_LOCATE_DEVINST_NORMAL   CM_LOCATE_DEVNODE_NORMAL

Definition at line 766 of file cfgmgr32.h.

◆ CM_LOCATE_DEVINST_NOVALIDATION

#define CM_LOCATE_DEVINST_NOVALIDATION   CM_LOCATE_DEVNODE_NOVALIDATION

Definition at line 769 of file cfgmgr32.h.

◆ CM_LOCATE_DEVINST_PHANTOM

#define CM_LOCATE_DEVINST_PHANTOM   CM_LOCATE_DEVNODE_PHANTOM

Definition at line 767 of file cfgmgr32.h.

◆ CM_Locate_DevInstA

#define CM_Locate_DevInstA   CM_Locate_DevNodeA

Definition at line 2392 of file cfgmgr32.h.

◆ CM_Locate_DevInstW

#define CM_Locate_DevInstW   CM_Locate_DevNodeW

Definition at line 2393 of file cfgmgr32.h.

◆ CM_Locate_DevNode

#define CM_Locate_DevNode   CM_Locate_DevNodeA

Definition at line 2403 of file cfgmgr32.h.

◆ CM_LOCATE_DEVNODE_BITS

#define CM_LOCATE_DEVNODE_BITS   0x00000007

Definition at line 764 of file cfgmgr32.h.

◆ CM_LOCATE_DEVNODE_CANCELREMOVE

#define CM_LOCATE_DEVNODE_CANCELREMOVE   0x00000002

Definition at line 762 of file cfgmgr32.h.

◆ CM_Locate_DevNode_Ex

#define CM_Locate_DevNode_Ex   CM_Locate_DevNode_ExA

Definition at line 2405 of file cfgmgr32.h.

◆ CM_LOCATE_DEVNODE_NORMAL

#define CM_LOCATE_DEVNODE_NORMAL   0x00000000

Definition at line 760 of file cfgmgr32.h.

◆ CM_LOCATE_DEVNODE_NOVALIDATION

#define CM_LOCATE_DEVNODE_NOVALIDATION   0x00000004

Definition at line 763 of file cfgmgr32.h.

◆ CM_LOCATE_DEVNODE_PHANTOM

#define CM_LOCATE_DEVNODE_PHANTOM   0x00000001

Definition at line 761 of file cfgmgr32.h.

◆ CM_Move_DevInst

#define CM_Move_DevInst   CM_Move_DevNode

Definition at line 2458 of file cfgmgr32.h.

◆ CM_Move_DevInst_Ex

#define CM_Move_DevInst_Ex   CM_Move_DevNode_Ex

Definition at line 2459 of file cfgmgr32.h.

◆ CM_NAME_ATTRIBUTE_NAME_RETRIEVED_FROM_DEVICE

#define CM_NAME_ATTRIBUTE_NAME_RETRIEVED_FROM_DEVICE   0x1

Definition at line 839 of file cfgmgr32.h.

◆ CM_NAME_ATTRIBUTE_USER_ASSIGNED_NAME

#define CM_NAME_ATTRIBUTE_USER_ASSIGNED_NAME   0x2

Definition at line 840 of file cfgmgr32.h.

◆ CM_Open_Class_Key

#define CM_Open_Class_Key   CM_Open_Class_KeyA

Definition at line 2520 of file cfgmgr32.h.

◆ CM_OPEN_CLASS_KEY_BITS

#define CM_OPEN_CLASS_KEY_BITS   0x00000001

Definition at line 774 of file cfgmgr32.h.

◆ CM_Open_Class_Key_Ex

#define CM_Open_Class_Key_Ex   CM_Open_Class_Key_ExA

Definition at line 2521 of file cfgmgr32.h.

◆ CM_OPEN_CLASS_KEY_INSTALLER

#define CM_OPEN_CLASS_KEY_INSTALLER   0x00000000

Definition at line 772 of file cfgmgr32.h.

◆ CM_OPEN_CLASS_KEY_INTERFACE

#define CM_OPEN_CLASS_KEY_INTERFACE   0x00000001

Definition at line 773 of file cfgmgr32.h.

◆ CM_Open_Device_Interface_Key

#define CM_Open_Device_Interface_Key   CM_Open_Device_Interface_KeyA

Definition at line 2598 of file cfgmgr32.h.

◆ CM_Open_Device_Interface_Key_Ex

#define CM_Open_Device_Interface_Key_Ex   CM_Open_Device_Interface_Key_ExA

Definition at line 2599 of file cfgmgr32.h.

◆ CM_Open_DevInst_Key

#define CM_Open_DevInst_Key   CM_Open_DevNode_Key

Definition at line 2547 of file cfgmgr32.h.

◆ CM_Open_DevInst_Key_Ex

#define CM_Open_DevInst_Key_Ex   CM_Open_DevNode_Key_Ex

Definition at line 2548 of file cfgmgr32.h.

◆ CM_Query_And_Remove_SubTree

#define CM_Query_And_Remove_SubTree   CM_Query_And_Remove_SubTreeA

Definition at line 2743 of file cfgmgr32.h.

◆ CM_Query_And_Remove_SubTree_Ex

#define CM_Query_And_Remove_SubTree_Ex   CM_Query_And_Remove_SubTree_ExA

Definition at line 2744 of file cfgmgr32.h.

◆ CM_QUERY_ARBITRATOR_BITS

#define CM_QUERY_ARBITRATOR_BITS   0x00000001

Definition at line 832 of file cfgmgr32.h.

◆ CM_QUERY_ARBITRATOR_RAW

#define CM_QUERY_ARBITRATOR_RAW   0x00000000

Definition at line 830 of file cfgmgr32.h.

◆ CM_QUERY_ARBITRATOR_TRANSLATED

#define CM_QUERY_ARBITRATOR_TRANSLATED   0x00000001

Definition at line 831 of file cfgmgr32.h.

◆ CM_QUERY_REMOVE_BITS

Definition at line 784 of file cfgmgr32.h.

◆ CM_QUERY_REMOVE_UI_NOT_OK

#define CM_QUERY_REMOVE_UI_NOT_OK   (CM_REMOVE_UI_NOT_OK)

Definition at line 783 of file cfgmgr32.h.

◆ CM_QUERY_REMOVE_UI_OK

#define CM_QUERY_REMOVE_UI_OK   (CM_REMOVE_UI_OK)

Definition at line 782 of file cfgmgr32.h.

◆ CM_REENUMERATE_ASYNCHRONOUS

#define CM_REENUMERATE_ASYNCHRONOUS   0x00000004

Definition at line 791 of file cfgmgr32.h.

◆ CM_REENUMERATE_BITS

#define CM_REENUMERATE_BITS   0x00000007

Definition at line 793 of file cfgmgr32.h.

◆ CM_Reenumerate_DevInst

#define CM_Reenumerate_DevInst   CM_Reenumerate_DevNode

Definition at line 2774 of file cfgmgr32.h.

◆ CM_Reenumerate_DevInst_Ex

#define CM_Reenumerate_DevInst_Ex   CM_Reenumerate_DevNode_Ex

Definition at line 2775 of file cfgmgr32.h.

◆ CM_REENUMERATE_NORMAL

#define CM_REENUMERATE_NORMAL   0x00000000

Definition at line 787 of file cfgmgr32.h.

◆ CM_REENUMERATE_RETRY_INSTALLATION

#define CM_REENUMERATE_RETRY_INSTALLATION   0x00000002

Definition at line 790 of file cfgmgr32.h.

◆ CM_REENUMERATE_SYNCHRONOUS

#define CM_REENUMERATE_SYNCHRONOUS   0x00000001

Definition at line 788 of file cfgmgr32.h.

◆ CM_REGISTER_DEVICE_DRIVER_BITS

#define CM_REGISTER_DEVICE_DRIVER_BITS   0x00000003

Definition at line 798 of file cfgmgr32.h.

◆ CM_REGISTER_DEVICE_DRIVER_DISABLEABLE

#define CM_REGISTER_DEVICE_DRIVER_DISABLEABLE   0x00000001

Definition at line 796 of file cfgmgr32.h.

◆ CM_REGISTER_DEVICE_DRIVER_REMOVABLE

#define CM_REGISTER_DEVICE_DRIVER_REMOVABLE   0x00000002

Definition at line 797 of file cfgmgr32.h.

◆ CM_REGISTER_DEVICE_DRIVER_STATIC

#define CM_REGISTER_DEVICE_DRIVER_STATIC   0x00000000

Definition at line 795 of file cfgmgr32.h.

◆ CM_Register_Device_Interface

#define CM_Register_Device_Interface   CM_Register_Device_InterfaceA

Definition at line 2827 of file cfgmgr32.h.

◆ CM_Register_Device_Interface_Ex

#define CM_Register_Device_Interface_Ex   CM_Register_Device_Interface_ExA

Definition at line 2828 of file cfgmgr32.h.

◆ CM_REGISTRY_BITS

#define CM_REGISTRY_BITS   0x00000301

Definition at line 804 of file cfgmgr32.h.

◆ CM_REGISTRY_CONFIG

#define CM_REGISTRY_CONFIG   0x00000200

Definition at line 803 of file cfgmgr32.h.

◆ CM_REGISTRY_HARDWARE

#define CM_REGISTRY_HARDWARE   0x00000000

Definition at line 800 of file cfgmgr32.h.

◆ CM_REGISTRY_SOFTWARE

#define CM_REGISTRY_SOFTWARE   0x00000001

Definition at line 801 of file cfgmgr32.h.

◆ CM_REGISTRY_USER

#define CM_REGISTRY_USER   0x00000100

Definition at line 802 of file cfgmgr32.h.

◆ CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL

#define CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL   1

Definition at line 748 of file cfgmgr32.h.

◆ CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL

#define CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL   2

Definition at line 749 of file cfgmgr32.h.

◆ CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL

#define CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL   3

Definition at line 750 of file cfgmgr32.h.

◆ CM_REMOVE_BITS

#define CM_REMOVE_BITS   0x00000003

Definition at line 780 of file cfgmgr32.h.

◆ CM_REMOVE_NO_RESTART

#define CM_REMOVE_NO_RESTART   0x00000002

Definition at line 779 of file cfgmgr32.h.

◆ CM_REMOVE_UI_NOT_OK

#define CM_REMOVE_UI_NOT_OK   0x00000001

Definition at line 778 of file cfgmgr32.h.

◆ CM_REMOVE_UI_OK

#define CM_REMOVE_UI_OK   0x00000000

Definition at line 777 of file cfgmgr32.h.

◆ CM_Request_Device_Eject

#define CM_Request_Device_Eject   CM_Request_Device_EjectA

Definition at line 2877 of file cfgmgr32.h.

◆ CM_Request_Device_Eject_Ex

#define CM_Request_Device_Eject_Ex   CM_Request_Device_Eject_ExA

Definition at line 2878 of file cfgmgr32.h.

◆ CM_RESDES_WIDTH_32

#define CM_RESDES_WIDTH_32   0x00000001

Definition at line 400 of file cfgmgr32.h.

◆ CM_RESDES_WIDTH_64

#define CM_RESDES_WIDTH_64   0x00000002

Definition at line 401 of file cfgmgr32.h.

◆ CM_RESDES_WIDTH_BITS

#define CM_RESDES_WIDTH_BITS   0x00000003

Definition at line 402 of file cfgmgr32.h.

◆ CM_RESDES_WIDTH_DEFAULT

#define CM_RESDES_WIDTH_DEFAULT   0x00000000

Definition at line 399 of file cfgmgr32.h.

◆ CM_Set_Class_Registry_Property

#define CM_Set_Class_Registry_Property   CM_Set_Class_Registry_PropertyA

Definition at line 2279 of file cfgmgr32.h.

◆ CM_Set_DevInst_Problem

#define CM_Set_DevInst_Problem   CM_Set_DevNode_Problem

Definition at line 2971 of file cfgmgr32.h.

◆ CM_SET_DEVINST_PROBLEM_BITS

#define CM_SET_DEVINST_PROBLEM_BITS   CM_SET_DEVNODE_PROBLEM_BITS

Definition at line 812 of file cfgmgr32.h.

◆ CM_Set_DevInst_Problem_Ex

#define CM_Set_DevInst_Problem_Ex   CM_Set_DevNode_Problem_Ex

Definition at line 2972 of file cfgmgr32.h.

◆ CM_SET_DEVINST_PROBLEM_NORMAL

#define CM_SET_DEVINST_PROBLEM_NORMAL   CM_SET_DEVNODE_PROBLEM_NORMAL

Definition at line 810 of file cfgmgr32.h.

◆ CM_SET_DEVINST_PROBLEM_OVERRIDE

#define CM_SET_DEVINST_PROBLEM_OVERRIDE   CM_SET_DEVNODE_PROBLEM_OVERRIDE

Definition at line 811 of file cfgmgr32.h.

◆ CM_Set_DevInst_Registry_Property

#define CM_Set_DevInst_Registry_Property   CM_Set_DevNode_Registry_PropertyA

Definition at line 3095 of file cfgmgr32.h.

◆ CM_Set_DevInst_Registry_Property_Ex

#define CM_Set_DevInst_Registry_Property_Ex   CM_Set_DevNode_Registry_Property_ExA

Definition at line 3096 of file cfgmgr32.h.

◆ CM_Set_DevInst_Registry_Property_ExA

#define CM_Set_DevInst_Registry_Property_ExA   CM_Set_DevNode_Registry_Property_ExA

Definition at line 3087 of file cfgmgr32.h.

◆ CM_Set_DevInst_Registry_Property_ExW

#define CM_Set_DevInst_Registry_Property_ExW   CM_Set_DevNode_Registry_Property_ExW

Definition at line 3086 of file cfgmgr32.h.

◆ CM_Set_DevInst_Registry_PropertyA

#define CM_Set_DevInst_Registry_PropertyA   CM_Set_DevNode_Registry_PropertyA

Definition at line 3085 of file cfgmgr32.h.

◆ CM_Set_DevInst_Registry_PropertyW

#define CM_Set_DevInst_Registry_PropertyW   CM_Set_DevNode_Registry_PropertyW

Definition at line 3084 of file cfgmgr32.h.

◆ CM_SET_DEVNODE_PROBLEM_BITS

#define CM_SET_DEVNODE_PROBLEM_BITS   0x00000001

Definition at line 808 of file cfgmgr32.h.

◆ CM_SET_DEVNODE_PROBLEM_NORMAL

#define CM_SET_DEVNODE_PROBLEM_NORMAL   0x00000000

Definition at line 806 of file cfgmgr32.h.

◆ CM_SET_DEVNODE_PROBLEM_OVERRIDE

#define CM_SET_DEVNODE_PROBLEM_OVERRIDE   0x00000001

Definition at line 807 of file cfgmgr32.h.

◆ CM_Set_DevNode_Registry_Property

#define CM_Set_DevNode_Registry_Property   CM_Set_DevNode_Registry_PropertyA

Definition at line 3097 of file cfgmgr32.h.

◆ CM_Set_DevNode_Registry_Property_Ex

#define CM_Set_DevNode_Registry_Property_Ex   CM_Set_DevNode_Registry_Property_ExA

Definition at line 3098 of file cfgmgr32.h.

◆ CM_Set_HW_Prof_Flags

#define CM_Set_HW_Prof_Flags   CM_Set_HW_Prof_FlagsA

Definition at line 3158 of file cfgmgr32.h.

◆ CM_SET_HW_PROF_FLAGS_BITS

#define CM_SET_HW_PROF_FLAGS_BITS   0x00000001

Definition at line 816 of file cfgmgr32.h.

◆ CM_Set_HW_Prof_Flags_Ex

#define CM_Set_HW_Prof_Flags_Ex   CM_Set_HW_Prof_Flags_ExA

Definition at line 3159 of file cfgmgr32.h.

◆ CM_SET_HW_PROF_FLAGS_UI_NOT_OK

#define CM_SET_HW_PROF_FLAGS_UI_NOT_OK   0x00000001

Definition at line 815 of file cfgmgr32.h.

◆ CM_SETUP_BITS

#define CM_SETUP_BITS   0x00000007

Definition at line 828 of file cfgmgr32.h.

◆ CM_Setup_DevInst

#define CM_Setup_DevInst   CM_Setup_DevNode

Definition at line 3177 of file cfgmgr32.h.

◆ CM_Setup_DevInst_Ex

#define CM_Setup_DevInst_Ex   CM_Setup_DevNode_Ex

Definition at line 3178 of file cfgmgr32.h.

◆ CM_SETUP_DEVINST_READY

#define CM_SETUP_DEVINST_READY   CM_SETUP_DEVNODE_READY

Definition at line 820 of file cfgmgr32.h.

◆ CM_SETUP_DEVINST_RESET

#define CM_SETUP_DEVINST_RESET   CM_SETUP_DEVNODE_RESET

Definition at line 826 of file cfgmgr32.h.

◆ CM_SETUP_DEVNODE_READY

#define CM_SETUP_DEVNODE_READY   0x00000000

Definition at line 819 of file cfgmgr32.h.

◆ CM_SETUP_DEVNODE_RESET

#define CM_SETUP_DEVNODE_RESET   0x00000004

Definition at line 825 of file cfgmgr32.h.

◆ CM_SETUP_DOWNLOAD

#define CM_SETUP_DOWNLOAD   0x00000001

Definition at line 821 of file cfgmgr32.h.

◆ CM_SETUP_PROP_CHANGE

#define CM_SETUP_PROP_CHANGE   0x00000003

Definition at line 823 of file cfgmgr32.h.

◆ CM_SETUP_WRITE_LOG_CONFS

#define CM_SETUP_WRITE_LOG_CONFS   0x00000002

Definition at line 822 of file cfgmgr32.h.

◆ CM_Uninstall_DevInst

#define CM_Uninstall_DevInst   CM_Uninstall_DevNode

Definition at line 3204 of file cfgmgr32.h.

◆ CM_Uninstall_DevInst_Ex

#define CM_Uninstall_DevInst_Ex   CM_Uninstall_DevNode_Ex

Definition at line 3205 of file cfgmgr32.h.

◆ CM_Unregister_Device_Interface

#define CM_Unregister_Device_Interface   CM_Unregister_Device_InterfaceA

Definition at line 3008 of file cfgmgr32.h.

◆ CM_Unregister_Device_Interface_Ex

#define CM_Unregister_Device_Interface_Ex   CM_Unregister_Device_Interface_ExA

Definition at line 3009 of file cfgmgr32.h.

◆ CM_WaitNoPendingInstallEvents

#define CM_WaitNoPendingInstallEvents   CMP_WaitNoPendingInstallEvents

Definition at line 3210 of file cfgmgr32.h.

◆ CMAPI

#define CMAPI   DECLSPEC_IMPORT

Definition at line 41 of file cfgmgr32.h.

◆ CONFIGMG_VERSION

#define CONFIGMG_VERSION   0x0400

Definition at line 64 of file cfgmgr32.h.

◆ CR_ACCESS_DENIED

#define CR_ACCESS_DENIED   0x00000033

Definition at line 897 of file cfgmgr32.h.

◆ CR_ALREADY_SUCH_DEVINST

#define CR_ALREADY_SUCH_DEVINST   CR_ALREADY_SUCH_DEVNODE

Definition at line 862 of file cfgmgr32.h.

◆ CR_ALREADY_SUCH_DEVNODE

#define CR_ALREADY_SUCH_DEVNODE   0x00000010

Definition at line 861 of file cfgmgr32.h.

◆ CR_APM_VETOED

#define CR_APM_VETOED   0x00000018

Definition at line 870 of file cfgmgr32.h.

◆ CR_BUFFER_SMALL

#define CR_BUFFER_SMALL   0x0000001A

Definition at line 872 of file cfgmgr32.h.

◆ CR_CALL_NOT_IMPLEMENTED

#define CR_CALL_NOT_IMPLEMENTED   0x00000034

Definition at line 898 of file cfgmgr32.h.

◆ CR_CANT_SHARE_IRQ

#define CR_CANT_SHARE_IRQ   0x0000002B

Definition at line 889 of file cfgmgr32.h.

◆ CR_CREATE_BLOCKED

#define CR_CREATE_BLOCKED   0x00000015

Definition at line 867 of file cfgmgr32.h.

◆ CR_DEFAULT

#define CR_DEFAULT   0x00000001

Definition at line 843 of file cfgmgr32.h.

◆ CR_DEVICE_INTERFACE_ACTIVE

#define CR_DEVICE_INTERFACE_ACTIVE   0x00000036

Definition at line 900 of file cfgmgr32.h.

◆ CR_DEVICE_NOT_THERE

#define CR_DEVICE_NOT_THERE   0x00000024

Definition at line 882 of file cfgmgr32.h.

◆ CR_DEVINST_HAS_REQS

#define CR_DEVINST_HAS_REQS   CR_DEVNODE_HAS_REQS

Definition at line 854 of file cfgmgr32.h.

◆ CR_DEVLOADER_NOT_READY

#define CR_DEVLOADER_NOT_READY   0x00000021

Definition at line 879 of file cfgmgr32.h.

◆ CR_DEVNODE_HAS_REQS

#define CR_DEVNODE_HAS_REQS   0x0000000A

Definition at line 853 of file cfgmgr32.h.

◆ CR_DLVXD_NOT_FOUND

#define CR_DLVXD_NOT_FOUND   0x0000000C

Definition at line 856 of file cfgmgr32.h.

◆ CR_FAILURE

#define CR_FAILURE   0x00000013

Definition at line 865 of file cfgmgr32.h.

◆ CR_FREE_RESOURCES

#define CR_FREE_RESOURCES   0x00000029

Definition at line 887 of file cfgmgr32.h.

◆ CR_INVALID_API

#define CR_INVALID_API   0x00000020

Definition at line 878 of file cfgmgr32.h.

◆ CR_INVALID_ARBITRATOR

#define CR_INVALID_ARBITRATOR   0x00000008

Definition at line 851 of file cfgmgr32.h.

◆ CR_INVALID_CONFLICT_LIST

#define CR_INVALID_CONFLICT_LIST   0x00000039

Definition at line 903 of file cfgmgr32.h.

◆ CR_INVALID_DATA

#define CR_INVALID_DATA   0x0000001F

Definition at line 877 of file cfgmgr32.h.

◆ CR_INVALID_DEVICE_ID

#define CR_INVALID_DEVICE_ID   0x0000001E

Definition at line 876 of file cfgmgr32.h.

◆ CR_INVALID_DEVINST

#define CR_INVALID_DEVINST   CR_INVALID_DEVNODE

Definition at line 848 of file cfgmgr32.h.

◆ CR_INVALID_DEVNODE

#define CR_INVALID_DEVNODE   0x00000005

Definition at line 847 of file cfgmgr32.h.

◆ CR_INVALID_FLAG

#define CR_INVALID_FLAG   0x00000004

Definition at line 846 of file cfgmgr32.h.

◆ CR_INVALID_INDEX

#define CR_INVALID_INDEX   0x0000003A

Definition at line 904 of file cfgmgr32.h.

◆ CR_INVALID_LOAD_TYPE

#define CR_INVALID_LOAD_TYPE   0x00000019

Definition at line 871 of file cfgmgr32.h.

◆ CR_INVALID_LOG_CONF

#define CR_INVALID_LOG_CONF   0x00000007

Definition at line 850 of file cfgmgr32.h.

◆ CR_INVALID_MACHINENAME

#define CR_INVALID_MACHINENAME   0x0000002F

Definition at line 893 of file cfgmgr32.h.

◆ CR_INVALID_NODELIST

#define CR_INVALID_NODELIST   0x00000009

Definition at line 852 of file cfgmgr32.h.

◆ CR_INVALID_POINTER

#define CR_INVALID_POINTER   0x00000003

Definition at line 845 of file cfgmgr32.h.

◆ CR_INVALID_PRIORITY

#define CR_INVALID_PRIORITY   0x00000027

Definition at line 885 of file cfgmgr32.h.

◆ CR_INVALID_PROPERTY

#define CR_INVALID_PROPERTY   0x00000035

Definition at line 899 of file cfgmgr32.h.

◆ CR_INVALID_RANGE

#define CR_INVALID_RANGE   0x00000012

Definition at line 864 of file cfgmgr32.h.

◆ CR_INVALID_RANGE_LIST

#define CR_INVALID_RANGE_LIST   0x00000011

Definition at line 863 of file cfgmgr32.h.

◆ CR_INVALID_REFERENCE_STRING

#define CR_INVALID_REFERENCE_STRING   0x00000038

Definition at line 902 of file cfgmgr32.h.

◆ CR_INVALID_RES_DES

#define CR_INVALID_RES_DES   0x00000006

Definition at line 849 of file cfgmgr32.h.

◆ CR_INVALID_RESOURCEID

#define CR_INVALID_RESOURCEID   0x0000000B

Definition at line 855 of file cfgmgr32.h.

◆ CR_INVALID_STRUCTURE_SIZE

#define CR_INVALID_STRUCTURE_SIZE   0x0000003B

Definition at line 905 of file cfgmgr32.h.

◆ CR_MACHINE_UNAVAILABLE

#define CR_MACHINE_UNAVAILABLE   0x00000031

Definition at line 895 of file cfgmgr32.h.

◆ CR_NEED_RESTART

#define CR_NEED_RESTART   0x00000022

Definition at line 880 of file cfgmgr32.h.

◆ CR_NO_ARBITRATOR

#define CR_NO_ARBITRATOR   0x0000001B

Definition at line 873 of file cfgmgr32.h.

◆ CR_NO_CM_SERVICES

#define CR_NO_CM_SERVICES   0x00000032

Definition at line 896 of file cfgmgr32.h.

◆ CR_NO_DEPENDENT

#define CR_NO_DEPENDENT   0x0000002C

Definition at line 890 of file cfgmgr32.h.

◆ CR_NO_MORE_HW_PROFILES

#define CR_NO_MORE_HW_PROFILES   0x00000023

Definition at line 881 of file cfgmgr32.h.

◆ CR_NO_MORE_LOG_CONF

#define CR_NO_MORE_LOG_CONF   0x0000000E

Definition at line 859 of file cfgmgr32.h.

◆ CR_NO_MORE_RES_DES

#define CR_NO_MORE_RES_DES   0x0000000F

Definition at line 860 of file cfgmgr32.h.

◆ CR_NO_REGISTRY_HANDLE

#define CR_NO_REGISTRY_HANDLE   0x0000001C

Definition at line 874 of file cfgmgr32.h.

◆ CR_NO_SUCH_DEVICE_INTERFACE

#define CR_NO_SUCH_DEVICE_INTERFACE   0x00000037

Definition at line 901 of file cfgmgr32.h.

◆ CR_NO_SUCH_DEVINST

#define CR_NO_SUCH_DEVINST   CR_NO_SUCH_DEVNODE

Definition at line 858 of file cfgmgr32.h.

◆ CR_NO_SUCH_DEVNODE

#define CR_NO_SUCH_DEVNODE   0x0000000D

Definition at line 857 of file cfgmgr32.h.

◆ CR_NO_SUCH_LOGICAL_DEV

#define CR_NO_SUCH_LOGICAL_DEV   0x00000014

Definition at line 866 of file cfgmgr32.h.

◆ CR_NO_SUCH_REGISTRY_KEY

#define CR_NO_SUCH_REGISTRY_KEY   0x0000002E

Definition at line 892 of file cfgmgr32.h.

◆ CR_NO_SUCH_VALUE

#define CR_NO_SUCH_VALUE   0x00000025

Definition at line 883 of file cfgmgr32.h.

◆ CR_NOT_DISABLEABLE

#define CR_NOT_DISABLEABLE   0x00000028

Definition at line 886 of file cfgmgr32.h.

◆ CR_NOT_SYSTEM_VM

#define CR_NOT_SYSTEM_VM   0x00000016

Definition at line 868 of file cfgmgr32.h.

◆ CR_OUT_OF_MEMORY

#define CR_OUT_OF_MEMORY   0x00000002

Definition at line 844 of file cfgmgr32.h.

◆ CR_QUERY_VETOED

#define CR_QUERY_VETOED   0x0000002A

Definition at line 888 of file cfgmgr32.h.

◆ CR_REGISTRY_ERROR

#define CR_REGISTRY_ERROR   0x0000001D

Definition at line 875 of file cfgmgr32.h.

◆ CR_REMOTE_COMM_FAILURE

#define CR_REMOTE_COMM_FAILURE   0x00000030

Definition at line 894 of file cfgmgr32.h.

◆ CR_REMOVE_VETOED

#define CR_REMOVE_VETOED   0x00000017

Definition at line 869 of file cfgmgr32.h.

◆ CR_SAME_RESOURCES

#define CR_SAME_RESOURCES   0x0000002D

Definition at line 891 of file cfgmgr32.h.

◆ CR_SUCCESS

#define CR_SUCCESS   0x00000000

Definition at line 842 of file cfgmgr32.h.

◆ CR_WRONG_TYPE

#define CR_WRONG_TYPE   0x00000026

Definition at line 884 of file cfgmgr32.h.

◆ DType_Range

#define DType_Range   sizeof(DMA_RANGE)

Definition at line 314 of file cfgmgr32.h.

◆ DWORD_MAX

#define DWORD_MAX   0xffffffffUL

Definition at line 61 of file cfgmgr32.h.

◆ DWORDLONG_MAX

#define DWORDLONG_MAX   0xffffffffffffffffui64

Definition at line 62 of file cfgmgr32.h.

◆ fDD_BusMaster

#define fDD_BusMaster   0x4

Definition at line 293 of file cfgmgr32.h.

◆ fDD_BYTE

#define fDD_BYTE   0x0

Definition at line 286 of file cfgmgr32.h.

◆ fDD_BYTE_AND_WORD

#define fDD_BYTE_AND_WORD   0x3

Definition at line 289 of file cfgmgr32.h.

◆ fDD_DWORD

#define fDD_DWORD   0x2

Definition at line 288 of file cfgmgr32.h.

◆ fDD_NoBusMaster

#define fDD_NoBusMaster   0x0

Definition at line 292 of file cfgmgr32.h.

◆ fDD_TypeA

#define fDD_TypeA   0x08

Definition at line 297 of file cfgmgr32.h.

◆ fDD_TypeB

#define fDD_TypeB   0x10

Definition at line 298 of file cfgmgr32.h.

◆ fDD_TypeF

#define fDD_TypeF   0x18

Definition at line 299 of file cfgmgr32.h.

◆ fDD_TypeStandard

#define fDD_TypeStandard   0x00

Definition at line 296 of file cfgmgr32.h.

◆ fDD_WORD

#define fDD_WORD   0x1

Definition at line 287 of file cfgmgr32.h.

◆ FILTERED_LOG_CONF

#define FILTERED_LOG_CONF   0x00000001

Definition at line 597 of file cfgmgr32.h.

◆ fIOD_10_BIT_DECODE

#define fIOD_10_BIT_DECODE   0x0004

Definition at line 244 of file cfgmgr32.h.

◆ fIOD_12_BIT_DECODE

#define fIOD_12_BIT_DECODE   0x0008

Definition at line 245 of file cfgmgr32.h.

◆ fIOD_16_BIT_DECODE

#define fIOD_16_BIT_DECODE   0x0010

Definition at line 246 of file cfgmgr32.h.

◆ fIOD_DECODE

#define fIOD_DECODE   0x00fc

Definition at line 243 of file cfgmgr32.h.

◆ fIOD_IO

#define fIOD_IO   0x1

Definition at line 242 of file cfgmgr32.h.

◆ fIOD_Memory

#define fIOD_Memory   0x0

Definition at line 241 of file cfgmgr32.h.

◆ fIOD_PASSIVE_DECODE

#define fIOD_PASSIVE_DECODE   0x0040

Definition at line 248 of file cfgmgr32.h.

◆ fIOD_PORT_BAR

#define fIOD_PORT_BAR   0x0100

Definition at line 250 of file cfgmgr32.h.

◆ fIOD_PortType

#define fIOD_PortType   0x1

Definition at line 240 of file cfgmgr32.h.

◆ fIOD_POSITIVE_DECODE

#define fIOD_POSITIVE_DECODE   0x0020

Definition at line 247 of file cfgmgr32.h.

◆ fIOD_WINDOW_DECODE

#define fIOD_WINDOW_DECODE   0x0080

Definition at line 249 of file cfgmgr32.h.

◆ fIRQD_Edge

#define fIRQD_Edge   0x2

Definition at line 331 of file cfgmgr32.h.

◆ fIRQD_Exclusive

#define fIRQD_Exclusive   0x0

Definition at line 323 of file cfgmgr32.h.

◆ fIRQD_Level

#define fIRQD_Level   0x0

Definition at line 330 of file cfgmgr32.h.

◆ fIRQD_Level_Bit

#define fIRQD_Level_Bit   1

Definition at line 327 of file cfgmgr32.h.

◆ fIRQD_Share

#define fIRQD_Share   0x1

Definition at line 324 of file cfgmgr32.h.

◆ fIRQD_Share_Bit

#define fIRQD_Share_Bit   0

Definition at line 326 of file cfgmgr32.h.

◆ fMD_24

#define fMD_24   0x0

Definition at line 164 of file cfgmgr32.h.

◆ fMD_32

#define fMD_32   0x2

Definition at line 165 of file cfgmgr32.h.

◆ fMD_32_24

#define fMD_32_24   mMD_32_24

Definition at line 163 of file cfgmgr32.h.

◆ fMD_Cacheable

#define fMD_Cacheable   0x20

Definition at line 185 of file cfgmgr32.h.

◆ fMD_CombinedWrite

#define fMD_CombinedWrite   mMD_CombinedWrite

Definition at line 179 of file cfgmgr32.h.

◆ fMD_CombinedWriteAllowed

#define fMD_CombinedWriteAllowed   0x10

Definition at line 181 of file cfgmgr32.h.

◆ fMD_CombinedWriteDisallowed

#define fMD_CombinedWriteDisallowed   0x0

Definition at line 180 of file cfgmgr32.h.

◆ fMD_MEMORY_BAR

#define fMD_MEMORY_BAR   0x80

Definition at line 187 of file cfgmgr32.h.

◆ fMD_MemoryType

#define fMD_MemoryType   mMD_MemoryType

Definition at line 158 of file cfgmgr32.h.

◆ fMD_NonCacheable

#define fMD_NonCacheable   0x0

Definition at line 184 of file cfgmgr32.h.

◆ fMD_Pref

#define fMD_Pref   mMD_Prefetchable

Definition at line 169 of file cfgmgr32.h.

◆ fMD_Prefetchable

#define fMD_Prefetchable   mMD_Prefetchable

Definition at line 168 of file cfgmgr32.h.

◆ fMD_PrefetchAllowed

#define fMD_PrefetchAllowed   0x4

Definition at line 171 of file cfgmgr32.h.

◆ fMD_PrefetchDisallowed

#define fMD_PrefetchDisallowed   0x0

Definition at line 170 of file cfgmgr32.h.

◆ fMD_RAM

#define fMD_RAM   0x1

Definition at line 160 of file cfgmgr32.h.

◆ fMD_Readable

#define fMD_Readable   mMD_Readable

Definition at line 174 of file cfgmgr32.h.

◆ fMD_ReadAllowed

#define fMD_ReadAllowed   0x0

Definition at line 175 of file cfgmgr32.h.

◆ fMD_ReadDisallowed

#define fMD_ReadDisallowed   0x8

Definition at line 176 of file cfgmgr32.h.

◆ fMD_ROM

#define fMD_ROM   0x0

Definition at line 159 of file cfgmgr32.h.

◆ fMD_WINDOW_DECODE

#define fMD_WINDOW_DECODE   0x40

Definition at line 186 of file cfgmgr32.h.

◆ FORCED_LOG_CONF

#define FORCED_LOG_CONF   0x00000004

Definition at line 600 of file cfgmgr32.h.

◆ fPCD_ATTRIBUTES_PER_WINDOW

#define fPCD_ATTRIBUTES_PER_WINDOW   0x8000

Definition at line 461 of file cfgmgr32.h.

◆ fPCD_IO1_16

#define fPCD_IO1_16   0x00010000

Definition at line 463 of file cfgmgr32.h.

◆ fPCD_IO1_SRC_16

#define fPCD_IO1_SRC_16   0x00040000

Definition at line 465 of file cfgmgr32.h.

◆ fPCD_IO1_WS_16

#define fPCD_IO1_WS_16   0x00080000

Definition at line 466 of file cfgmgr32.h.

◆ fPCD_IO1_ZW_8

#define fPCD_IO1_ZW_8   0x00020000

Definition at line 464 of file cfgmgr32.h.

◆ fPCD_IO2_16

#define fPCD_IO2_16   0x00100000

Definition at line 468 of file cfgmgr32.h.

◆ fPCD_IO2_SRC_16

#define fPCD_IO2_SRC_16   0x00400000

Definition at line 470 of file cfgmgr32.h.

◆ fPCD_IO2_WS_16

#define fPCD_IO2_WS_16   0x00800000

Definition at line 471 of file cfgmgr32.h.

◆ fPCD_IO2_ZW_8

#define fPCD_IO2_ZW_8   0x00200000

Definition at line 469 of file cfgmgr32.h.

◆ fPCD_IO_16

#define fPCD_IO_16   0x1

Definition at line 442 of file cfgmgr32.h.

◆ fPCD_IO_8

#define fPCD_IO_8   0x0

Definition at line 441 of file cfgmgr32.h.

◆ fPCD_IO_SRC_16

#define fPCD_IO_SRC_16   0x20

Definition at line 450 of file cfgmgr32.h.

◆ fPCD_IO_WS_16

#define fPCD_IO_WS_16   0x40

Definition at line 451 of file cfgmgr32.h.

◆ fPCD_IO_ZW_8

#define fPCD_IO_ZW_8   0x10

Definition at line 449 of file cfgmgr32.h.

◆ fPCD_MEM1_16

#define fPCD_MEM1_16   0x04000000

Definition at line 477 of file cfgmgr32.h.

◆ fPCD_MEM1_A

#define fPCD_MEM1_A   0x4

Definition at line 447 of file cfgmgr32.h.

◆ fPCD_MEM1_WS_ONE

#define fPCD_MEM1_WS_ONE   0x01000000

Definition at line 474 of file cfgmgr32.h.

◆ fPCD_MEM1_WS_THREE

#define fPCD_MEM1_WS_THREE   0x03000000

Definition at line 476 of file cfgmgr32.h.

◆ fPCD_MEM1_WS_TWO

#define fPCD_MEM1_WS_TWO   0x02000000

Definition at line 475 of file cfgmgr32.h.

◆ fPCD_MEM2_16

#define fPCD_MEM2_16   0x40000000

Definition at line 483 of file cfgmgr32.h.

◆ fPCD_MEM2_A

#define fPCD_MEM2_A   0x8

Definition at line 448 of file cfgmgr32.h.

◆ fPCD_MEM2_WS_ONE

#define fPCD_MEM2_WS_ONE   0x10000000

Definition at line 480 of file cfgmgr32.h.

◆ fPCD_MEM2_WS_THREE

#define fPCD_MEM2_WS_THREE   0x30000000

Definition at line 482 of file cfgmgr32.h.

◆ fPCD_MEM2_WS_TWO

#define fPCD_MEM2_WS_TWO   0x20000000

Definition at line 481 of file cfgmgr32.h.

◆ fPCD_MEM_16

#define fPCD_MEM_16   0x2

Definition at line 445 of file cfgmgr32.h.

◆ fPCD_MEM_8

#define fPCD_MEM_8   0x0

Definition at line 444 of file cfgmgr32.h.

◆ fPCD_MEM_A

#define fPCD_MEM_A   0x4

Definition at line 459 of file cfgmgr32.h.

◆ fPCD_MEM_WS_ONE

#define fPCD_MEM_WS_ONE   0x100

Definition at line 453 of file cfgmgr32.h.

◆ fPCD_MEM_WS_THREE

#define fPCD_MEM_WS_THREE   0x300

Definition at line 455 of file cfgmgr32.h.

◆ fPCD_MEM_WS_TWO

#define fPCD_MEM_WS_TWO   0x200

Definition at line 454 of file cfgmgr32.h.

◆ fPMF_AUDIO_ENABLE

#define fPMF_AUDIO_ENABLE   0x8

Definition at line 510 of file cfgmgr32.h.

◆ IO_ALIAS_10_BIT_DECODE

#define IO_ALIAS_10_BIT_DECODE   0x00000004

Definition at line 253 of file cfgmgr32.h.

◆ IO_ALIAS_12_BIT_DECODE

#define IO_ALIAS_12_BIT_DECODE   0x00000010

Definition at line 254 of file cfgmgr32.h.

◆ IO_ALIAS_16_BIT_DECODE

#define IO_ALIAS_16_BIT_DECODE   0x00000000

Definition at line 255 of file cfgmgr32.h.

◆ IO_ALIAS_POSITIVE_DECODE

#define IO_ALIAS_POSITIVE_DECODE   0x000000FF

Definition at line 256 of file cfgmgr32.h.

◆ IOA_Local

#define IOA_Local   0xff

Definition at line 280 of file cfgmgr32.h.

◆ IOType_Range

#define IOType_Range   sizeof(IO_RANGE)

Definition at line 282 of file cfgmgr32.h.

◆ IRQType_Range

#define IRQType_Range   sizeof(IRQ_RANGE)

Definition at line 396 of file cfgmgr32.h.

◆ LOG_CONF_BITS

#define LOG_CONF_BITS   0x00000007

Definition at line 603 of file cfgmgr32.h.

◆ MAX_CLASS_NAME_LEN

#define MAX_CLASS_NAME_LEN   32

Definition at line 52 of file cfgmgr32.h.

◆ MAX_CONFIG_VALUE

#define MAX_CONFIG_VALUE   9999

Definition at line 46 of file cfgmgr32.h.

◆ MAX_DEVICE_ID_LEN

#define MAX_DEVICE_ID_LEN   200

Definition at line 49 of file cfgmgr32.h.

◆ MAX_DEVNODE_ID_LEN

#define MAX_DEVNODE_ID_LEN   MAX_DEVICE_ID_LEN

Definition at line 50 of file cfgmgr32.h.

◆ MAX_DMA_CHANNELS

#define MAX_DMA_CHANNELS   7

Definition at line 59 of file cfgmgr32.h.

◆ MAX_GUID_STRING_LEN

#define MAX_GUID_STRING_LEN   39

Definition at line 53 of file cfgmgr32.h.

◆ MAX_INSTANCE_VALUE

#define MAX_INSTANCE_VALUE   9999

Definition at line 47 of file cfgmgr32.h.

◆ MAX_IO_PORTS

#define MAX_IO_PORTS   20

Definition at line 57 of file cfgmgr32.h.

◆ MAX_IRQS

#define MAX_IRQS   7

Definition at line 58 of file cfgmgr32.h.

◆ MAX_MEM_REGISTERS

#define MAX_MEM_REGISTERS   9

Definition at line 56 of file cfgmgr32.h.

◆ MAX_PROFILE_LEN

#define MAX_PROFILE_LEN   80

Definition at line 54 of file cfgmgr32.h.

◆ mDD_BusMaster

#define mDD_BusMaster   0x4

Definition at line 291 of file cfgmgr32.h.

◆ mDD_Type

#define mDD_Type   0x18

Definition at line 295 of file cfgmgr32.h.

◆ mDD_Width

#define mDD_Width   0x3

Definition at line 285 of file cfgmgr32.h.

◆ mIRQD_Edge_Level

#define mIRQD_Edge_Level   0x2

Definition at line 329 of file cfgmgr32.h.

◆ mIRQD_Share

#define mIRQD_Share   0x1

Definition at line 322 of file cfgmgr32.h.

◆ MLType_Range

#define MLType_Range   sizeof(struct Mem_Large_Range_s)

Definition at line 237 of file cfgmgr32.h.

◆ mMD_32_24

#define mMD_32_24   0x2

Definition at line 162 of file cfgmgr32.h.

◆ mMD_Cacheable

#define mMD_Cacheable   0x20

Definition at line 183 of file cfgmgr32.h.

◆ mMD_CombinedWrite

#define mMD_CombinedWrite   0x10

Definition at line 178 of file cfgmgr32.h.

◆ mMD_MemoryType

#define mMD_MemoryType   0x1

Definition at line 157 of file cfgmgr32.h.

◆ mMD_Prefetchable

#define mMD_Prefetchable   0x4

Definition at line 167 of file cfgmgr32.h.

◆ mMD_Readable

#define mMD_Readable   0x8

Definition at line 173 of file cfgmgr32.h.

◆ mPCD_IO_8_16

#define mPCD_IO_8_16   0x1

Definition at line 440 of file cfgmgr32.h.

◆ mPCD_MEM1_WS

#define mPCD_MEM1_WS   0x03000000

Definition at line 473 of file cfgmgr32.h.

◆ mPCD_MEM2_WS

#define mPCD_MEM2_WS   0x30000000

Definition at line 479 of file cfgmgr32.h.

◆ mPCD_MEM_8_16

#define mPCD_MEM_8_16   0x2

Definition at line 443 of file cfgmgr32.h.

◆ mPCD_MEM_A_C

#define mPCD_MEM_A_C   0xC

Definition at line 446 of file cfgmgr32.h.

◆ mPCD_MEM_WS

#define mPCD_MEM_WS   0x300

Definition at line 452 of file cfgmgr32.h.

◆ mPMF_AUDIO_ENABLE

#define mPMF_AUDIO_ENABLE   fPMF_AUDIO_ENABLE

Definition at line 511 of file cfgmgr32.h.

◆ MType_Range

#define MType_Range   sizeof(MEM_RANGE)

Definition at line 212 of file cfgmgr32.h.

◆ NUM_CR_RESULTS

#define NUM_CR_RESULTS   0x0000003C

Definition at line 906 of file cfgmgr32.h.

◆ NUM_LOG_CONF

#define NUM_LOG_CONF   0x00000006

Definition at line 602 of file cfgmgr32.h.

◆ OVERRIDE_LOG_CONF

#define OVERRIDE_LOG_CONF   0x00000005

Definition at line 601 of file cfgmgr32.h.

◆ PCD_MAX_IO

#define PCD_MAX_IO   2

Definition at line 486 of file cfgmgr32.h.

◆ PCD_MAX_MEMORY

#define PCD_MAX_MEMORY   2

Definition at line 485 of file cfgmgr32.h.

◆ PRIORITY_BIT

#define PRIORITY_BIT   0x00000008

Definition at line 607 of file cfgmgr32.h.

◆ PRIORITY_EQUAL_FIRST

#define PRIORITY_EQUAL_FIRST   0x00000008

Definition at line 605 of file cfgmgr32.h.

◆ PRIORITY_EQUAL_LAST

#define PRIORITY_EQUAL_LAST   0x00000000

Definition at line 606 of file cfgmgr32.h.

◆ PType_Range

#define PType_Range   sizeof(DEVPRIVATE_RANGE)

Definition at line 420 of file cfgmgr32.h.

◆ RegDisposition_Bits

#define RegDisposition_Bits   0x00000001

Definition at line 611 of file cfgmgr32.h.

◆ RegDisposition_OpenAlways

#define RegDisposition_OpenAlways   0x00000000

Definition at line 609 of file cfgmgr32.h.

◆ RegDisposition_OpenExisting

#define RegDisposition_OpenExisting   0x00000001

Definition at line 610 of file cfgmgr32.h.

◆ ResType_All

#define ResType_All   0x00000000

Definition at line 575 of file cfgmgr32.h.

◆ ResType_BusNumber

#define ResType_BusNumber   0x00000006

Definition at line 582 of file cfgmgr32.h.

◆ ResType_ClassSpecific

#define ResType_ClassSpecific   0x0000FFFF

Definition at line 586 of file cfgmgr32.h.

◆ ResType_DevicePrivate

#define ResType_DevicePrivate   0x00008001

Definition at line 588 of file cfgmgr32.h.

◆ ResType_DMA

#define ResType_DMA   0x00000003

Definition at line 579 of file cfgmgr32.h.

◆ ResType_DoNotUse

#define ResType_DoNotUse   0x00000005

Definition at line 581 of file cfgmgr32.h.

◆ ResType_Ignored_Bit

#define ResType_Ignored_Bit   0x00008000

Definition at line 585 of file cfgmgr32.h.

◆ ResType_IO

#define ResType_IO   0x00000002

Definition at line 578 of file cfgmgr32.h.

◆ ResType_IRQ

#define ResType_IRQ   0x00000004

Definition at line 580 of file cfgmgr32.h.

◆ ResType_MAX

#define ResType_MAX   0x00000007

Definition at line 584 of file cfgmgr32.h.

◆ ResType_Mem

#define ResType_Mem   0x00000001

Definition at line 577 of file cfgmgr32.h.

◆ ResType_MemLarge

#define ResType_MemLarge   0x00000007

Definition at line 583 of file cfgmgr32.h.

◆ ResType_MfCardConfig

#define ResType_MfCardConfig   0x00008003

Definition at line 590 of file cfgmgr32.h.

◆ ResType_None

#define ResType_None   0x00000000

Definition at line 576 of file cfgmgr32.h.

◆ ResType_PcCardConfig

#define ResType_PcCardConfig   0x00008002

Definition at line 589 of file cfgmgr32.h.

◆ ResType_Reserved

#define ResType_Reserved   0x00008000

Definition at line 587 of file cfgmgr32.h.

Typedef Documentation

◆ BUSNUMBER_DES

◆ BUSNUMBER_RANGE

◆ BUSNUMBER_RESOURCE

◆ CONFIGRET

Definition at line 74 of file cfgmgr32.h.

◆ CONFLICT_DETAILS

Definition at line 136 of file cfgmgr32.h.

◆ CONFLICT_DETAILS_A

◆ CONFLICT_DETAILS_W

◆ CONFLICT_LIST

Definition at line 111 of file cfgmgr32.h.

◆ CS_DES

◆ CS_RESOURCE

◆ DEVINST

typedef DWORD DEVINST

Definition at line 76 of file cfgmgr32.h.

◆ DEVINSTID

Definition at line 87 of file cfgmgr32.h.

◆ DEVINSTID_A

Definition at line 79 of file cfgmgr32.h.

◆ DEVINSTID_W

Definition at line 80 of file cfgmgr32.h.

◆ DEVNODE

typedef DWORD DEVNODE

Definition at line 76 of file cfgmgr32.h.

◆ DEVNODEID

Definition at line 86 of file cfgmgr32.h.

◆ DEVNODEID_A

Definition at line 79 of file cfgmgr32.h.

◆ DEVNODEID_W

Definition at line 80 of file cfgmgr32.h.

◆ DEVPRIVATE_DES

◆ DEVPRIVATE_RANGE

◆ DEVPRIVATE_RESOURCE

◆ DMA_DES

◆ DMA_RANGE

◆ DMA_RESOURCE

◆ HMACHINE

typedef HANDLE HMACHINE

Definition at line 108 of file cfgmgr32.h.

◆ HWPROFILEINFO

Definition at line 569 of file cfgmgr32.h.

◆ HWPROFILEINFO_A

◆ HWPROFILEINFO_W

◆ IO_DES

◆ IO_RANGE

◆ IO_RESOURCE

◆ IRQ_DES

Definition at line 374 of file cfgmgr32.h.

◆ IRQ_DES_32

◆ IRQ_DES_64

◆ IRQ_RANGE

◆ IRQ_RESOURCE

Definition at line 392 of file cfgmgr32.h.

◆ IRQ_RESOURCE_32

◆ IRQ_RESOURCE_64

◆ LOG_CONF

Definition at line 90 of file cfgmgr32.h.

◆ MEM_DES

◆ MEM_LARGE_DES

◆ MEM_LARGE_RANGE

◆ MEM_LARGE_RESOURCE

◆ MEM_RANGE

◆ MEM_RESOURCE

◆ MFCARD_DES

◆ MFCARD_RESOURCE

◆ PBUSNUMBER_DES

◆ PBUSNUMBER_RANGE

◆ PBUSNUMBER_RESOURCE

◆ PCCARD_DES

◆ PCCARD_RESOURCE

◆ PCONFLICT_DETAILS

Definition at line 137 of file cfgmgr32.h.

◆ PCONFLICT_DETAILS_A

◆ PCONFLICT_DETAILS_W

◆ PCONFLICT_LIST

Definition at line 112 of file cfgmgr32.h.

◆ PCS_DES

typedef struct CS_Des_s * PCS_DES

◆ PCS_RESOURCE

◆ PCVOID

typedef CONST VOID* PCVOID

Definition at line 44 of file cfgmgr32.h.

◆ PDEVINST

typedef DEVNODE * PDEVINST

Definition at line 77 of file cfgmgr32.h.

◆ PDEVNODE

typedef DEVNODE* PDEVNODE

Definition at line 77 of file cfgmgr32.h.

◆ PDEVPRIVATE_DES

◆ PDEVPRIVATE_RANGE

◆ PDEVPRIVATE_RESOURCE

◆ PDMA_DES

◆ PDMA_RANGE

◆ PDMA_RESOURCE

◆ PHMACHINE

typedef HMACHINE* PHMACHINE

Definition at line 109 of file cfgmgr32.h.

◆ PHWPROFILEINFO

Definition at line 570 of file cfgmgr32.h.

◆ PHWPROFILEINFO_A

◆ PHWPROFILEINFO_W

◆ PIO_DES

typedef struct IO_Des_s * PIO_DES

◆ PIO_RANGE

◆ PIO_RESOURCE

◆ PIRQ_DES

Definition at line 375 of file cfgmgr32.h.

◆ PIRQ_DES_32

◆ PIRQ_DES_64

◆ PIRQ_RANGE

◆ PIRQ_RESOURCE

Definition at line 393 of file cfgmgr32.h.

◆ PIRQ_RESOURCE_32

◆ PIRQ_RESOURCE_64

◆ PLOG_CONF

typedef LOG_CONF* PLOG_CONF

Definition at line 91 of file cfgmgr32.h.

◆ PMEM_DES

◆ PMEM_LARGE_DES

◆ PMEM_LARGE_RANGE

◆ PMEM_LARGE_RESOURCE

◆ PMEM_RANGE

◆ PMEM_RESOURCE

◆ PMFCARD_DES

◆ PMFCARD_RESOURCE

◆ PPCCARD_DES

◆ PPCCARD_RESOURCE

◆ PPRIORITY

typedef PRIORITY* PPRIORITY

Definition at line 100 of file cfgmgr32.h.

◆ PRANGE_ELEMENT

Definition at line 106 of file cfgmgr32.h.

◆ PRANGE_LIST

Definition at line 103 of file cfgmgr32.h.

◆ PRES_DES

typedef RES_DES* PRES_DES

Definition at line 94 of file cfgmgr32.h.

◆ PRESOURCEID

Definition at line 97 of file cfgmgr32.h.

◆ PRIORITY

typedef ULONG PRIORITY

Definition at line 99 of file cfgmgr32.h.

◆ RANGE_ELEMENT

Definition at line 105 of file cfgmgr32.h.

◆ RANGE_LIST

Definition at line 102 of file cfgmgr32.h.

◆ REGDISPOSITION

Definition at line 152 of file cfgmgr32.h.

◆ RES_DES

typedef DWORD_PTR RES_DES

Definition at line 93 of file cfgmgr32.h.

◆ RESOURCEID

typedef ULONG RESOURCEID

Definition at line 96 of file cfgmgr32.h.

Function Documentation

◆ _Return_type_success_()

typedef _Return_type_success_ ( return  = =0)

◆ CM_Add_Empty_Log_Conf()

CMAPI CONFIGRET WINAPI CM_Add_Empty_Log_Conf ( _Out_ PLOG_CONF  plcLogConf,
_In_ DEVINST  dnDevInst,
_In_ PRIORITY  Priority,
_In_ ULONG  ulFlags 
)

Definition at line 894 of file cfgmgr.c.

899{
900 TRACE("CM_Add_Empty_Log_Conf(%p %p %lu %lx)\n",
901 plcLogConf, dnDevInst, Priority, ulFlags);
902
903 return CM_Add_Empty_Log_Conf_Ex(plcLogConf, dnDevInst, Priority,
904 ulFlags, NULL);
905}
CONFIGRET WINAPI CM_Add_Empty_Log_Conf_Ex(_Out_ PLOG_CONF plcLogConf, _In_ DEVINST dnDevInst, _In_ PRIORITY Priority, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:913
#define NULL
Definition: types.h:112
#define TRACE(s)
Definition: solgame.cpp:4
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
Definition: wdfinterrupt.h:655

◆ CM_Add_Empty_Log_Conf_Ex()

CMAPI CONFIGRET WINAPI CM_Add_Empty_Log_Conf_Ex ( _Out_ PLOG_CONF  plcLogConf,
_In_ DEVINST  dnDevInst,
_In_ PRIORITY  Priority,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 913 of file cfgmgr.c.

919{
921 HSTRING_TABLE StringTable = NULL;
922 ULONG ulLogConfTag = 0;
923 LPWSTR lpDevInst;
924 PLOG_CONF_INFO pLogConfInfo;
926
927 FIXME("CM_Add_Empty_Log_Conf_Ex(%p %p %lu %lx %p)\n",
928 plcLogConf, dnDevInst, Priority, ulFlags, hMachine);
929
930 if (!pSetupIsUserAdmin())
931 return CR_ACCESS_DENIED;
932
933 if (plcLogConf == NULL)
934 return CR_INVALID_POINTER;
935
936 if (dnDevInst == 0)
937 return CR_INVALID_DEVINST;
938
939 if (Priority > 0xFFFF)
940 return CR_INVALID_PRIORITY;
941
942 if (ulFlags & ~(LOG_CONF_BITS | PRIORITY_BIT))
943 return CR_INVALID_FLAG;
944
945 if (hMachine != NULL)
946 {
947 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
948 if (BindingHandle == NULL)
949 return CR_FAILURE;
950
951 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
952 if (StringTable == 0)
953 return CR_FAILURE;
954 }
955 else
956 {
957 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
958 return CR_FAILURE;
959 }
960
961 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
962 if (lpDevInst == NULL)
963 return CR_INVALID_DEVNODE;
964
966 {
968 &ulLogConfTag, ulFlags);
969 }
971 {
973 }
975
976 if (ret == CR_SUCCESS)
977 {
978 pLogConfInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_CONF_INFO));
979 if (pLogConfInfo == NULL)
980 {
982 }
983 else
984 {
985 pLogConfInfo->ulMagic = LOG_CONF_MAGIC;
986 pLogConfInfo->dnDevInst = dnDevInst;
987 pLogConfInfo->ulType = ulFlags;
988 pLogConfInfo->ulTag = ulLogConfTag;
989
990 *plcLogConf = (LOG_CONF)pLogConfInfo;
991
992 ret = CR_SUCCESS;
993 }
994 }
995
996 return ret;
997}
DWORD WINAPI PNP_AddEmptyLogConf(handle_t hBinding, LPWSTR pDeviceID, DWORD ulPriority, DWORD *pulLogConfTag, DWORD ulFlags)
Definition: rpcserver.c:4209
#define FIXME(fmt,...)
Definition: precomp.h:53
#define CR_OUT_OF_MEMORY
Definition: cfgmgr32.h:844
#define CR_INVALID_PRIORITY
Definition: cfgmgr32.h:885
DWORD_PTR LOG_CONF
Definition: cfgmgr32.h:90
#define CR_FAILURE
Definition: cfgmgr32.h:865
#define CR_INVALID_DEVINST
Definition: cfgmgr32.h:848
#define LOG_CONF_BITS
Definition: cfgmgr32.h:603
#define PRIORITY_BIT
Definition: cfgmgr32.h:607
#define CR_ACCESS_DENIED
Definition: cfgmgr32.h:897
#define CR_INVALID_FLAG
Definition: cfgmgr32.h:846
RETURN_TYPE CONFIGRET
Definition: cfgmgr32.h:74
#define CR_INVALID_POINTER
Definition: cfgmgr32.h:845
#define CR_SUCCESS
Definition: cfgmgr32.h:842
#define CR_INVALID_DEVNODE
Definition: cfgmgr32.h:847
static CONFIGRET RpcStatusToCmStatus(_In_ RPC_STATUS Status)
Definition: cfgmgr.c:141
#define LOG_CONF_MAGIC
Definition: cfgmgr.c:65
struct _MACHINE_INFO * PMACHINE_INFO
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
BOOL WINAPI pSetupIsUserAdmin(VOID)
Definition: misc.c:1817
BOOL PnpGetLocalHandles(RPC_BINDING_HANDLE *BindingHandle, HSTRING_TABLE *StringTable)
Definition: rpc.c:66
LPWSTR WINAPI pSetupStringTableStringFromId(HSTRING_TABLE hStringTable, DWORD dwId)
Definition: stringtable.c:722
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:90
#define RpcEndExcept
Definition: rpc.h:123
#define RpcTryExcept
Definition: rpc.h:121
#define RpcExcept(expr)
Definition: rpc.h:122
#define RpcExceptionCode()
Definition: rpc.h:127
ULONG ulTag
Definition: cfgmgr.c:62
ULONG ulType
Definition: cfgmgr.c:61
DEVINST dnDevInst
Definition: cfgmgr.c:60
ULONG ulMagic
Definition: cfgmgr.c:59
_In_ ULONG _Out_ HANDLE * BindingHandle
Definition: tdikrnl.h:1147
uint32_t ULONG
Definition: typedefs.h:59
int ret
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by CM_Add_Empty_Log_Conf().

◆ CM_Add_ID_ExA()

CMAPI CONFIGRET WINAPI CM_Add_ID_ExA ( _In_ DEVINST  dnDevInst,
_In_ PSTR  pszID,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 1039 of file cfgmgr.c.

1044{
1045 PWSTR pszIDW;
1046 CONFIGRET ret;
1047
1048 TRACE("CM_Add_ID_ExA(%p %s %lx %p)\n",
1049 dnDevInst, debugstr_a(pszID), ulFlags, hMachine);
1050
1051 if (pSetupCaptureAndConvertAnsiArg(pszID, &pszIDW))
1052 return CR_INVALID_DATA;
1053
1054 ret = CM_Add_ID_ExW(dnDevInst, pszIDW, ulFlags, hMachine);
1055
1056 MyFree(pszIDW);
1057
1058 return ret;
1059}
#define CR_INVALID_DATA
Definition: cfgmgr32.h:877
CONFIGRET WINAPI CM_Add_ID_ExW(_In_ DEVINST dnDevInst, _In_ PWSTR pszID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:1067
DWORD WINAPI pSetupCaptureAndConvertAnsiArg(LPCSTR pSrc, LPWSTR *pDst)
Definition: misc.c:574
VOID WINAPI MyFree(LPVOID lpMem)
Definition: misc.c:128
#define debugstr_a
Definition: kernel32.h:31
uint16_t * PWSTR
Definition: typedefs.h:56

Referenced by CM_Add_IDA().

◆ CM_Add_ID_ExW()

CMAPI CONFIGRET WINAPI CM_Add_ID_ExW ( _In_ DEVINST  dnDevInst,
_In_ PWSTR  pszID,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 1067 of file cfgmgr.c.

1072{
1074 HSTRING_TABLE StringTable = NULL;
1075 LPWSTR lpDevInst;
1076 CONFIGRET ret;
1077
1078 TRACE("CM_Add_ID_ExW(%p %s %lx %p)\n",
1079 dnDevInst, debugstr_w(pszID), ulFlags, hMachine);
1080
1081 if (!pSetupIsUserAdmin())
1082 return CR_ACCESS_DENIED;
1083
1084 if (dnDevInst == 0)
1085 return CR_INVALID_DEVINST;
1086
1087 if (pszID == NULL)
1088 return CR_INVALID_POINTER;
1089
1090 if (ulFlags & ~CM_ADD_ID_BITS)
1091 return CR_INVALID_FLAG;
1092
1093 if (hMachine != NULL)
1094 {
1095 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
1096 if (BindingHandle == NULL)
1097 return CR_FAILURE;
1098
1099 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
1100 if (StringTable == 0)
1101 return CR_FAILURE;
1102 }
1103 else
1104 {
1105 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
1106 return CR_FAILURE;
1107 }
1108
1109 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
1110 if (lpDevInst == NULL)
1111 return CR_INVALID_DEVNODE;
1112
1114 {
1116 lpDevInst,
1117 pszID,
1118 ulFlags);
1119 }
1121 {
1123 }
1125
1126 return ret;
1127}
DWORD WINAPI PNP_AddID(handle_t hBinding, LPWSTR pszDeviceID, LPWSTR pszID, DWORD ulFlags)
Definition: rpcserver.c:3675
#define CM_ADD_ID_BITS
Definition: cfgmgr32.h:616
#define debugstr_w
Definition: kernel32.h:32

Referenced by CM_Add_ID_ExA(), and CM_Add_IDW().

◆ CM_Add_IDA()

CMAPI CONFIGRET WINAPI CM_Add_IDA ( _In_ DEVINST  dnDevInst,
_In_ PSTR  pszID,
_In_ ULONG  ulFlags 
)

Definition at line 1005 of file cfgmgr.c.

1009{
1010 TRACE("CM_Add_IDA(%p %s %lx)\n",
1011 dnDevInst, debugstr_a(pszID), ulFlags);
1012
1013 return CM_Add_ID_ExA(dnDevInst, pszID, ulFlags, NULL);
1014}
CONFIGRET WINAPI CM_Add_ID_ExA(_In_ DEVINST dnDevInst, _In_ PSTR pszID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:1039

◆ CM_Add_IDW()

CMAPI CONFIGRET WINAPI CM_Add_IDW ( _In_ DEVINST  dnDevInst,
_In_ PWSTR  pszID,
_In_ ULONG  ulFlags 
)

Definition at line 1022 of file cfgmgr.c.

1026{
1027 TRACE("CM_Add_IDW(%p %s %lx)\n",
1028 dnDevInst, debugstr_w(pszID), ulFlags);
1029
1030 return CM_Add_ID_ExW(dnDevInst, pszID, ulFlags, NULL);
1031}

◆ CM_Add_Range()

CMAPI CONFIGRET WINAPI CM_Add_Range ( _In_ DWORDLONG  ullStartValue,
_In_ DWORDLONG  ullEndValue,
_In_ RANGE_LIST  rlh,
_In_ ULONG  ulFlags 
)

Definition at line 1135 of file cfgmgr.c.

1140{
1141 PINTERNAL_RANGE_LIST pRangeList;
1142 PINTERNAL_RANGE pRange;
1144
1145 FIXME("CM_Add_Range(%I64u %I64u %p %lx)\n",
1146 ullStartValue, ullEndValue, rlh, ulFlags);
1147
1148 pRangeList = (PINTERNAL_RANGE_LIST)rlh;
1149
1150 if (!IsValidRangeList(pRangeList))
1151 return CR_INVALID_RANGE_LIST;
1152
1153 if (ulFlags & ~CM_ADD_RANGE_BITS)
1154 return CR_INVALID_FLAG;
1155
1156 if (ullEndValue < ullStartValue)
1157 return CR_INVALID_RANGE;
1158
1159 /* Lock the range list */
1160 WaitForSingleObject(pRangeList->hMutex, INFINITE);
1161
1162 /* Allocate the new range */
1163 pRange = HeapAlloc(GetProcessHeap(), 0, sizeof(INTERNAL_RANGE));
1164 if (pRange == NULL)
1165 {
1167 goto done;
1168 }
1169
1170 pRange->pRangeList = pRangeList;
1171 pRange->ullStart = ullStartValue;
1172 pRange->ullEnd = ullEndValue;
1173
1174 /* Insert the range */
1175 if (IsListEmpty(&pRangeList->ListHead))
1176 {
1177 InsertTailList(&pRangeList->ListHead, &pRange->ListEntry);
1178 }
1179 else
1180 {
1181 HeapFree(GetProcessHeap(), 0, pRange);
1183 }
1184
1185done:
1186 /* Unlock the range list */
1187 ReleaseMutex(pRangeList->hMutex);
1188
1189 return ret;
1190}
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
#define CM_ADD_RANGE_BITS
Definition: cfgmgr32.h:594
#define CR_INVALID_RANGE
Definition: cfgmgr32.h:864
#define CR_INVALID_RANGE_LIST
Definition: cfgmgr32.h:863
struct _INTERNAL_RANGE_LIST * PINTERNAL_RANGE_LIST
BOOL IsValidRangeList(_In_opt_ PINTERNAL_RANGE_LIST pRangeList)
Definition: cfgmgr.c:395
#define HeapFree(x, y, z)
Definition: compat.h:735
#define INFINITE
Definition: serial.h:102
#define InsertTailList(ListHead, Entry)
#define IsListEmpty(ListHead)
Definition: env_spec_w32.h:954
LIST_ENTRY ListHead
Definition: cfgmgr.c:100
DWORDLONG ullEnd
Definition: cfgmgr.c:93
DWORDLONG ullStart
Definition: cfgmgr.c:92
struct _INTERNAL_RANGE_LIST * pRangeList
Definition: cfgmgr.c:91
LIST_ENTRY ListEntry
Definition: cfgmgr.c:90
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
BOOL WINAPI DECLSPEC_HOTPATCH ReleaseMutex(IN HANDLE hMutex)
Definition: synch.c:618

◆ CM_Add_Res_Des()

CMAPI CONFIGRET WINAPI CM_Add_Res_Des ( _Out_opt_ PRES_DES  prdResDes,
_In_ LOG_CONF  lcLogConf,
_In_ RESOURCEID  ResourceID,
_In_reads_bytes_(ResourceLen) PCVOID  ResourceData,
_In_ ULONG  ResourceLen,
_In_ ULONG  ulFlags 
)

Definition at line 1198 of file cfgmgr.c.

1205{
1206 TRACE("CM_Add_Res_Des(%p %p %lu %p %lu %lx)\n",
1207 prdResDes, lcLogConf, ResourceID, ResourceData, ResourceLen, ulFlags);
1208
1209 return CM_Add_Res_Des_Ex(prdResDes, lcLogConf, ResourceID, ResourceData,
1210 ResourceLen, ulFlags, NULL);
1211}
CONFIGRET WINAPI CM_Add_Res_Des_Ex(_Out_opt_ PRES_DES prdResDes, _In_ LOG_CONF lcLogConf, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:1219

◆ CM_Add_Res_Des_Ex()

CMAPI CONFIGRET WINAPI CM_Add_Res_Des_Ex ( _Out_opt_ PRES_DES  prdResDes,
_In_ LOG_CONF  lcLogConf,
_In_ RESOURCEID  ResourceID,
_In_reads_bytes_(ResourceLen) PCVOID  ResourceData,
_In_ ULONG  ResourceLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 1219 of file cfgmgr.c.

1227{
1228 FIXME("CM_Add_Res_Des_Ex(%p %p %lu %p %lu %lx %p)\n",
1229 prdResDes, lcLogConf, ResourceID,
1230 ResourceData, ResourceLen, ulFlags, hMachine);
1231
1233}
#define CR_CALL_NOT_IMPLEMENTED
Definition: cfgmgr32.h:898

Referenced by CM_Add_Res_Des().

◆ CM_Apply_PowerScheme()

CONFIGRET CM_Apply_PowerScheme ( VOID  )

◆ CM_Connect_MachineA()

CMAPI CONFIGRET WINAPI CM_Connect_MachineA ( _In_opt_ PCSTR  UNCServerName,
_Out_ PHMACHINE  phMachine 
)

Definition at line 1241 of file cfgmgr.c.

1244{
1245 PWSTR pServerNameW;
1246 CONFIGRET ret;
1247
1248 TRACE("CM_Connect_MachineA(%s %p)\n",
1249 debugstr_a(UNCServerName), phMachine);
1250
1251 if (UNCServerName == NULL || *UNCServerName == 0)
1252 return CM_Connect_MachineW(NULL, phMachine);
1253
1254 if (pSetupCaptureAndConvertAnsiArg(UNCServerName, &pServerNameW))
1255 return CR_INVALID_DATA;
1256
1257 ret = CM_Connect_MachineW(pServerNameW, phMachine);
1258
1259 MyFree(pServerNameW);
1260
1261 return ret;
1262}
CONFIGRET WINAPI CM_Connect_MachineW(_In_opt_ PCWSTR UNCServerName, _Out_ PHMACHINE phMachine)
Definition: cfgmgr.c:1270

Referenced by SetupDiGetClassRegistryPropertyA(), and SetupDiSetClassRegistryPropertyA().

◆ CM_Connect_MachineW()

CMAPI CONFIGRET WINAPI CM_Connect_MachineW ( _In_opt_ PCWSTR  UNCServerName,
_Out_ PHMACHINE  phMachine 
)

Definition at line 1270 of file cfgmgr.c.

1273{
1274 PMACHINE_INFO pMachine;
1275
1276 TRACE("CM_Connect_MachineW(%s %p)\n",
1277 debugstr_w(UNCServerName), phMachine);
1278
1279 if (phMachine == NULL)
1280 return CR_INVALID_POINTER;
1281
1282 *phMachine = NULL;
1283
1284 pMachine = HeapAlloc(GetProcessHeap(), 0, sizeof(MACHINE_INFO));
1285 if (pMachine == NULL)
1286 return CR_OUT_OF_MEMORY;
1287
1288 if (UNCServerName == NULL || *UNCServerName == 0)
1289 {
1290 pMachine->bLocal = TRUE;
1291
1292 /* FIXME: store the computers name in pMachine->szMachineName */
1293
1294 if (!PnpGetLocalHandles(&pMachine->BindingHandle,
1295 &pMachine->StringTable))
1296 {
1297 HeapFree(GetProcessHeap(), 0, pMachine);
1298 return CR_FAILURE;
1299 }
1300 }
1301 else
1302 {
1303 pMachine->bLocal = FALSE;
1304 if (wcslen(UNCServerName) >= SP_MAX_MACHINENAME_LENGTH - 1)
1305 {
1306 HeapFree(GetProcessHeap(), 0, pMachine);
1308 }
1309 lstrcpyW(pMachine->szMachineName, UNCServerName);
1310
1312 if (pMachine->StringTable == NULL)
1313 {
1314 HeapFree(GetProcessHeap(), 0, pMachine);
1315 return CR_FAILURE;
1316 }
1317
1318 pSetupStringTableAddString(pMachine->StringTable, L"PLT", 1);
1319
1320 if (!PnpBindRpc(UNCServerName, &pMachine->BindingHandle))
1321 {
1323 HeapFree(GetProcessHeap(), 0, pMachine);
1325 }
1326 }
1327
1328 *phMachine = (PHMACHINE)pMachine;
1329
1330 return CR_SUCCESS;
1331}
HMACHINE * PHMACHINE
Definition: cfgmgr32.h:109
#define CR_INVALID_MACHINENAME
Definition: cfgmgr32.h:893
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define lstrcpyW
Definition: compat.h:749
RPC_STATUS PnpBindRpc(LPCWSTR pszMachine, RPC_BINDING_HANDLE *BindingHandle)
Definition: rpc.c:28
HSTRING_TABLE WINAPI pSetupStringTableInitialize(VOID)
Definition: stringtable.c:54
DWORD WINAPI pSetupStringTableAddString(HSTRING_TABLE hStringTable, LPWSTR lpString, DWORD dwFlags)
Definition: stringtable.c:196
VOID WINAPI pSetupStringTableDestroy(HSTRING_TABLE hStringTable)
Definition: stringtable.c:145
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define L(x)
Definition: ntvdm.h:50
#define SP_MAX_MACHINENAME_LENGTH
Definition: setupapi.h:27
WCHAR szMachineName[SP_MAX_MACHINENAME_LENGTH]
Definition: cfgmgr.c:50
HSTRING_TABLE StringTable
Definition: cfgmgr.c:52
RPC_BINDING_HANDLE BindingHandle
Definition: cfgmgr.c:51
BOOL bLocal
Definition: cfgmgr.c:53

Referenced by CM_Connect_MachineA(), SetupDiBuildClassInfoListExW(), SetupDiCreateDeviceInfoListExW(), SetupDiGetClassRegistryPropertyW(), and SetupDiSetClassRegistryPropertyW().

◆ CM_Create_DevNode_ExA()

CMAPI CONFIGRET WINAPI CM_Create_DevNode_ExA ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINSTID_A  pDeviceID,
_In_ DEVINST  dnParent,
_In_ ULONG  ulFlags,
_In_opt_ HANDLE  hMachine 
)

Definition at line 1377 of file cfgmgr.c.

1383{
1384 DEVINSTID_W pDeviceIDW;
1385 CONFIGRET ret;
1386
1387 TRACE("CM_Create_DevNode_ExA(%p %s %p %lx %p)\n",
1388 pdnDevInst, debugstr_a(pDeviceID), dnParent, ulFlags, hMachine);
1389
1390 if (pSetupCaptureAndConvertAnsiArg(pDeviceID, &pDeviceIDW))
1391 return CR_INVALID_DATA;
1392
1393 ret = CM_Create_DevNode_ExW(pdnDevInst, pDeviceIDW, dnParent, ulFlags,
1394 hMachine);
1395
1396 MyFree(pDeviceIDW);
1397
1398 return ret;
1399}
_Null_terminated_ WCHAR * DEVINSTID_W
Definition: cfgmgr32.h:80
CONFIGRET WINAPI CM_Create_DevNode_ExW(_Out_ PDEVINST pdnDevInst, _In_ DEVINSTID_W pDeviceID, _In_ DEVINST dnParent, _In_ ULONG ulFlags, _In_opt_ HANDLE hMachine)
Definition: cfgmgr.c:1407

Referenced by CM_Create_DevNodeA().

◆ CM_Create_DevNode_ExW()

CMAPI CONFIGRET WINAPI CM_Create_DevNode_ExW ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINSTID_W  pDeviceID,
_In_ DEVINST  dnParent,
_In_ ULONG  ulFlags,
_In_opt_ HANDLE  hMachine 
)

Definition at line 1407 of file cfgmgr.c.

1413{
1415 HSTRING_TABLE StringTable = NULL;
1416 LPWSTR lpParentDevInst;
1418 WCHAR szLocalDeviceID[MAX_DEVICE_ID_LEN];
1419
1420 TRACE("CM_Create_DevNode_ExW(%p %s %p %lx %p)\n",
1421 pdnDevInst, debugstr_w(pDeviceID), dnParent, ulFlags, hMachine);
1422
1423 if (!pSetupIsUserAdmin())
1424 return CR_ACCESS_DENIED;
1425
1426 if (pdnDevInst == NULL)
1427 return CR_INVALID_POINTER;
1428
1429 if (pDeviceID == NULL || wcslen(pDeviceID) == 0 || wcslen(pDeviceID) >= MAX_DEVICE_ID_LEN)
1430 return CR_INVALID_DEVICE_ID;
1431
1432 if (dnParent == 0)
1433 return CR_INVALID_DEVNODE;
1434
1435 if (ulFlags & ~CM_CREATE_DEVNODE_BITS)
1436 return CR_INVALID_FLAG;
1437
1438 if (hMachine != NULL)
1439 {
1440 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
1441 if (BindingHandle == NULL)
1442 return CR_FAILURE;
1443
1444 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
1445 if (StringTable == 0)
1446 return CR_FAILURE;
1447 }
1448 else
1449 {
1450 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
1451 return CR_FAILURE;
1452 }
1453
1454 lpParentDevInst = pSetupStringTableStringFromId(StringTable, dnParent);
1455 if (lpParentDevInst == NULL)
1456 return CR_INVALID_DEVNODE;
1457
1458 wcscpy(szLocalDeviceID, pDeviceID);
1459
1461 {
1463 szLocalDeviceID,
1464 lpParentDevInst,
1466 ulFlags);
1467 }
1469 {
1471 }
1473
1474 if (ret == CR_SUCCESS)
1475 {
1476 /* If CM_CREATE_DEVINST_GENERATE_ID was passed in, PNP_CreateDevInst
1477 * will return the generated device ID in szLocalDeviceID */
1478 *pdnDevInst = pSetupStringTableAddString(StringTable, szLocalDeviceID, 1);
1479 if (*pdnDevInst == 0)
1481 }
1482
1483 return ret;
1484}
DWORD WINAPI PNP_CreateDevInst(handle_t hBinding, LPWSTR pszDeviceID, LPWSTR pszParentDeviceID, PNP_RPC_STRING_LEN ulLength, DWORD ulFlags)
Definition: rpcserver.c:3174
#define CR_INVALID_DEVICE_ID
Definition: cfgmgr32.h:876
#define CR_NO_SUCH_DEVNODE
Definition: cfgmgr32.h:857
#define CM_CREATE_DEVNODE_BITS
Definition: cfgmgr32.h:624
wcscpy
#define MAX_DEVICE_ID_LEN
Definition: devaction.c:40
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by CM_Create_DevNode_ExA(), and CM_Create_DevNodeW().

◆ CM_Create_DevNodeA()

CMAPI CONFIGRET WINAPI CM_Create_DevNodeA ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINSTID_A  pDeviceID,
_In_ DEVINST  dnParent,
_In_ ULONG  ulFlags 
)

Definition at line 1339 of file cfgmgr.c.

1344{
1345 TRACE("CM_Create_DevNodeA(%p %s %p %lx)\n",
1346 pdnDevInst, debugstr_a(pDeviceID), dnParent, ulFlags);
1347
1348 return CM_Create_DevNode_ExA(pdnDevInst, pDeviceID, dnParent,
1349 ulFlags, NULL);
1350}
CONFIGRET WINAPI CM_Create_DevNode_ExA(_Out_ PDEVINST pdnDevInst, _In_ DEVINSTID_A pDeviceID, _In_ DEVINST dnParent, _In_ ULONG ulFlags, _In_opt_ HANDLE hMachine)
Definition: cfgmgr.c:1377

◆ CM_Create_DevNodeW()

CMAPI CONFIGRET WINAPI CM_Create_DevNodeW ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINSTID_W  pDeviceID,
_In_ DEVINST  dnParent,
_In_ ULONG  ulFlags 
)

Definition at line 1358 of file cfgmgr.c.

1363{
1364 TRACE("CM_Create_DevNodeW(%p %s %p %lx)\n",
1365 pdnDevInst, debugstr_w(pDeviceID), dnParent, ulFlags);
1366
1367 return CM_Create_DevNode_ExW(pdnDevInst, pDeviceID, dnParent,
1368 ulFlags, NULL);
1369}

◆ CM_Create_Range_List()

CMAPI CONFIGRET WINAPI CM_Create_Range_List ( _Out_ PRANGE_LIST  prlh,
_In_ ULONG  ulFlags 
)

Definition at line 1492 of file cfgmgr.c.

1495{
1496 PINTERNAL_RANGE_LIST pRangeList;
1497
1498 FIXME("CM_Create_Range_List(%p %lx)\n",
1499 prlh, ulFlags);
1500
1501 if (ulFlags != 0)
1502 return CR_INVALID_FLAG;
1503
1504 if (prlh == NULL)
1505 return CR_INVALID_POINTER;
1506
1507 /* Allocate the range list */
1509 if (pRangeList == NULL)
1510 return CR_OUT_OF_MEMORY;
1511
1512 /* Set the magic value */
1513 pRangeList->ulMagic = RANGE_LIST_MAGIC;
1514
1515 /* Initialize the mutex for synchonized access */
1516 pRangeList->hMutex = CreateMutex(NULL, FALSE, NULL);
1517 if (pRangeList->hMutex == NULL)
1518 {
1519 HeapFree(GetProcessHeap(), 0, pRangeList);
1520 return CR_FAILURE;
1521 }
1522
1523 InitializeListHead(&pRangeList->ListHead);
1524
1525 *prlh = (RANGE_LIST)pRangeList;
1526
1527 return CR_SUCCESS;
1528}
DWORD_PTR RANGE_LIST
Definition: cfgmgr32.h:102
#define RANGE_LIST_MAGIC
Definition: cfgmgr.c:103
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
#define CreateMutex
Definition: winbase.h:3788

◆ CM_Delete_Class_Key()

CMAPI CONFIGRET WINAPI CM_Delete_Class_Key ( _In_ LPGUID  ClassGuid,
_In_ ULONG  ulFlags 
)

Definition at line 1536 of file cfgmgr.c.

1539{
1540 TRACE("CM_Delete_Class_Key(%p %lx)\n",
1541 ClassGuid, ulFlags);
1542
1543 return CM_Delete_Class_Key_Ex(ClassGuid, ulFlags, NULL);
1544}
CONFIGRET WINAPI CM_Delete_Class_Key_Ex(_In_ LPGUID ClassGuid, _In_ ULONG ulFlags, _In_opt_ HANDLE hMachine)
Definition: cfgmgr.c:1552

◆ CM_Delete_Class_Key_Ex()

CMAPI CONFIGRET WINAPI CM_Delete_Class_Key_Ex ( _In_ LPGUID  ClassGuid,
_In_ ULONG  ulFlags,
_In_opt_ HANDLE  hMachine 
)

Definition at line 1552 of file cfgmgr.c.

1556{
1557 WCHAR szGuidString[MAX_GUID_STRING_LEN];
1559 CONFIGRET ret;
1560
1561 TRACE("CM_Delete_Class_Key_Ex(%p %lx %p)\n",
1562 ClassGuid, ulFlags, hMachine);
1563
1564 if (ClassGuid == NULL)
1565 return CR_INVALID_POINTER;
1566
1567 if (ulFlags & ~CM_DELETE_CLASS_BITS)
1568 return CR_INVALID_FLAG;
1569
1570 if (!GuidToString(ClassGuid, szGuidString))
1571 return CR_INVALID_DATA;
1572
1573 if (hMachine != NULL)
1574 {
1575 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
1576 if (BindingHandle == NULL)
1577 return CR_FAILURE;
1578 }
1579 else
1580 {
1582 return CR_FAILURE;
1583 }
1584
1586 {
1588 szGuidString,
1589 ulFlags);
1590 }
1592 {
1594 }
1596
1597 return ret;
1598}
DWORD WINAPI PNP_DeleteClassKey(handle_t hBinding, LPWSTR pszClassGuid, DWORD ulFlags)
Definition: rpcserver.c:2600
#define CM_DELETE_CLASS_BITS
Definition: cfgmgr32.h:639
static BOOL GuidToString(_In_ LPGUID Guid, _Out_ LPWSTR String)
Definition: cfgmgr.c:118
#define MAX_GUID_STRING_LEN
Definition: apphelp.c:29

Referenced by CM_Delete_Class_Key().

◆ CM_Delete_Device_Interface_Key_ExA()

CMAPI CONFIGRET WINAPI CM_Delete_Device_Interface_Key_ExA ( _In_ LPCSTR  pszDeviceInterface,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Delete_Device_Interface_Key_ExW()

CMAPI CONFIGRET WINAPI CM_Delete_Device_Interface_Key_ExW ( _In_ LPCWSTR  pszDeviceInterface,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Delete_Device_Interface_KeyA()

CMAPI CONFIGRET WINAPI CM_Delete_Device_Interface_KeyA ( _In_ LPCSTR  pszDeviceInterface,
_In_ ULONG  ulFlags 
)

◆ CM_Delete_Device_Interface_KeyW()

CMAPI CONFIGRET WINAPI CM_Delete_Device_Interface_KeyW ( _In_ LPCWSTR  pszDeviceInterface,
_In_ ULONG  ulFlags 
)

◆ CM_Delete_DevNode_Key()

CMAPI CONFIGRET WINAPI CM_Delete_DevNode_Key ( _In_ DEVNODE  dnDevNode,
_In_ ULONG  ulHardwareProfile,
_In_ ULONG  ulFlags 
)

Definition at line 1606 of file cfgmgr.c.

1610{
1611 TRACE("CM_Delete_DevNode_Key(%p %lu %lx)\n",
1612 dnDevInst, ulHardwareProfile, ulFlags);
1613
1614 return CM_Delete_DevNode_Key_Ex(dnDevInst, ulHardwareProfile, ulFlags,
1615 NULL);
1616}
CONFIGRET WINAPI CM_Delete_DevNode_Key_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulHardwareProfile, _In_ ULONG ulFlags, _In_opt_ HANDLE hMachine)
Definition: cfgmgr.c:1624

◆ CM_Delete_DevNode_Key_Ex()

CMAPI CONFIGRET WINAPI CM_Delete_DevNode_Key_Ex ( _In_ DEVNODE  dnDevNode,
_In_ ULONG  ulHardwareProfile,
_In_ ULONG  ulFlags,
_In_opt_ HANDLE  hMachine 
)

Definition at line 1624 of file cfgmgr.c.

1629{
1631 HSTRING_TABLE StringTable = NULL;
1632 PWSTR pszDevInst, pszKeyPath = NULL, pszInstancePath = NULL;
1633 CONFIGRET ret;
1634
1635 FIXME("CM_Delete_DevNode_Key_Ex(%p %lu %lx %p)\n",
1636 dnDevInst, ulHardwareProfile, ulFlags, hMachine);
1637
1638 if (dnDevInst == 0)
1639 return CR_INVALID_DEVINST;
1640
1641 if (ulFlags & ~CM_REGISTRY_BITS)
1642 return CR_INVALID_FLAG;
1643
1644 if ((ulFlags & CM_REGISTRY_USER) && (ulFlags & CM_REGISTRY_CONFIG))
1645 return CR_INVALID_FLAG;
1646
1647 if (hMachine != NULL)
1648 {
1649 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
1650 if (BindingHandle == NULL)
1651 return CR_FAILURE;
1652
1653 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
1654 if (StringTable == 0)
1655 return CR_FAILURE;
1656 }
1657 else
1658 {
1659 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
1660 return CR_FAILURE;
1661 }
1662
1663 pszDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
1664 if (pszDevInst == NULL)
1665 return CR_INVALID_DEVNODE;
1666
1667 TRACE("pszDevInst: %S\n", pszDevInst);
1668
1669 pszKeyPath = MyMalloc(512 * sizeof(WCHAR));
1670 if (pszKeyPath == NULL)
1671 {
1673 goto done;
1674 }
1675
1676 pszInstancePath = MyMalloc(512 * sizeof(WCHAR));
1677 if (pszInstancePath == NULL)
1678 {
1680 goto done;
1681 }
1682
1684 pszDevInst,
1685 pszKeyPath,
1686 pszInstancePath,
1687 ulHardwareProfile,
1688 ulFlags);
1689 if (ret != CR_SUCCESS)
1690 goto done;
1691
1692 TRACE("pszKeyPath: %S\n", pszKeyPath);
1693 TRACE("pszInstancePath: %S\n", pszInstancePath);
1694
1695 if (ulFlags & CM_REGISTRY_USER)
1696 {
1697 FIXME("The CM_REGISTRY_USER flag is not supported yet!\n");
1698 }
1699 else
1700 {
1701#if 0
1702 if (!pSetupIsUserAdmin())
1703 {
1705 goto done;
1706 }
1707#endif
1708
1709 if (!(ulFlags & CM_REGISTRY_CONFIG))
1710 ulHardwareProfile = 0;
1711
1713 {
1715 pszDevInst,
1716 pszKeyPath,
1717 pszInstancePath,
1718 ulHardwareProfile);
1719 }
1721 {
1723 }
1725 }
1726
1727done:
1728 if (pszInstancePath != NULL)
1729 MyFree(pszInstancePath);
1730
1731 if (pszKeyPath != NULL)
1732 MyFree(pszKeyPath);
1733
1734 return ret;
1735}
DWORD WINAPI PNP_DeleteRegistryKey(handle_t hBinding, LPWSTR pszDeviceID, LPWSTR pszParentKey, LPWSTR pszChildKey, DWORD ulFlags)
Definition: rpcserver.c:2482
#define CM_REGISTRY_BITS
Definition: cfgmgr32.h:804
#define CM_REGISTRY_USER
Definition: cfgmgr32.h:802
#define CM_REGISTRY_CONFIG
Definition: cfgmgr32.h:803
static CONFIGRET GetDeviceInstanceKeyPath(_In_ RPC_BINDING_HANDLE BindingHandle, _In_ PWSTR pszDeviceInst, _Out_ PWSTR pszKeyPath, _Out_ PWSTR pszInstancePath, _In_ ULONG ulHardwareProfile, _In_ ULONG ulFlags)
Definition: cfgmgr.c:229
LPVOID WINAPI MyMalloc(DWORD dwSize)
Definition: misc.c:147

Referenced by CM_Delete_DevNode_Key().

◆ CM_Delete_PowerScheme()

CONFIGRET CM_Delete_PowerScheme ( _In_ CONST GUID SchemeGuid,
_Out_ PDWORD  Error 
)

◆ CM_Delete_Range()

CMAPI CONFIGRET WINAPI CM_Delete_Range ( _In_ DWORDLONG  ullStartValue,
_In_ DWORDLONG  ullEndValue,
_In_ RANGE_LIST  rlh,
_In_ ULONG  ulFlags 
)

Definition at line 1743 of file cfgmgr.c.

1748{
1749 FIXME("CM_Delete_Range(%I64u %I64u %p %lx)\n",
1750 ullStartValue, ullEndValue, rlh, ulFlags);
1751
1753}

◆ CM_Detect_Resource_Conflict()

CMAPI CONFIGRET WINAPI CM_Detect_Resource_Conflict ( _In_ DEVINST  dnDevInst,
_In_ RESOURCEID  ResourceID,
_In_reads_bytes_(ResourceLen) PCVOID  ResourceData,
_In_ ULONG  ResourceLen,
_Out_ PBOOL  pbConflictDetected,
_In_ ULONG  ulFlags 
)

Definition at line 1761 of file cfgmgr.c.

1768{
1769 TRACE("CM_Detect_Resource_Conflict(%p %lu %p %lu %p 0x%lx)\n",
1770 dnDevInst, ResourceID, ResourceData, ResourceLen,
1771 pbConflictDetected, ulFlags);
1772
1773 return CM_Detect_Resource_Conflict_Ex(dnDevInst,
1774 ResourceID,
1775 ResourceData,
1776 ResourceLen,
1777 pbConflictDetected,
1778 ulFlags,
1779 NULL);
1780}
CONFIGRET WINAPI CM_Detect_Resource_Conflict_Ex(_In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _Out_ PBOOL pbConflictDetected, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:1788

◆ CM_Detect_Resource_Conflict_Ex()

CMAPI CONFIGRET WINAPI CM_Detect_Resource_Conflict_Ex ( _In_ DEVINST  dnDevInst,
_In_ RESOURCEID  ResourceID,
_In_reads_bytes_(ResourceLen) PCVOID  ResourceData,
_In_ ULONG  ResourceLen,
_Out_ PBOOL  pbConflictDetected,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 1788 of file cfgmgr.c.

1796{
1797 FIXME("CM_Detect_Resource_Conflict_Ex(%p %lu %p %lu %p 0x%lx %p)\n",
1798 dnDevInst, ResourceID, ResourceData, ResourceLen,
1799 pbConflictDetected, ulFlags, hMachine);
1800
1802}

Referenced by CM_Detect_Resource_Conflict().

◆ CM_Disable_DevNode()

CMAPI CONFIGRET WINAPI CM_Disable_DevNode ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 1810 of file cfgmgr.c.

1813{
1814 TRACE("CM_Disable_DevNode(%p %lx)\n",
1815 dnDevInst, ulFlags);
1816
1817 return CM_Disable_DevNode_Ex(dnDevInst, ulFlags, NULL);
1818}
CONFIGRET WINAPI CM_Disable_DevNode_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:1826

◆ CM_Disable_DevNode_Ex()

CMAPI CONFIGRET WINAPI CM_Disable_DevNode_Ex ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 1826 of file cfgmgr.c.

1830{
1832 HSTRING_TABLE StringTable = NULL;
1833 LPWSTR lpDevInst;
1834 CONFIGRET ret;
1835
1836 TRACE("CM_Disable_DevNode_Ex(%p %lx %p)\n",
1837 dnDevInst, ulFlags, hMachine);
1838
1839 if (!pSetupIsUserAdmin())
1840 return CR_ACCESS_DENIED;
1841
1842 if (dnDevInst == 0)
1843 return CR_INVALID_DEVINST;
1844
1845 if (ulFlags != 0)
1846 return CR_INVALID_FLAG;
1847
1848 if (hMachine != NULL)
1849 {
1850 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
1851 if (BindingHandle == NULL)
1852 return CR_FAILURE;
1853
1854 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
1855 if (StringTable == 0)
1856 return CR_FAILURE;
1857 }
1858 else
1859 {
1860 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
1861 return CR_FAILURE;
1862 }
1863
1864 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
1865 if (lpDevInst == NULL)
1866 return CR_INVALID_DEVNODE;
1867
1869 {
1871 lpDevInst,
1872 NULL,
1873 NULL,
1874 0,
1875 ulFlags);
1876 }
1878 {
1880 }
1882
1883 return ret;
1884}
DWORD WINAPI PNP_DisableDevInst(handle_t hBinding, LPWSTR pDeviceID, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, DWORD ulNameLength, DWORD ulFlags)
Definition: rpcserver.c:3590

Referenced by CM_Disable_DevNode(), and StopDevice().

◆ CM_Disconnect_Machine()

CMAPI CONFIGRET WINAPI CM_Disconnect_Machine ( _In_opt_ HMACHINE  hMachine)

Definition at line 1892 of file cfgmgr.c.

1894{
1895 PMACHINE_INFO pMachine;
1896
1897 TRACE("CM_Disconnect_Machine(%p)\n", hMachine);
1898
1899 pMachine = (PMACHINE_INFO)hMachine;
1900 if (pMachine == NULL)
1901 return CR_SUCCESS;
1902
1903 if (pMachine->bLocal == FALSE)
1904 {
1905 if (pMachine->StringTable != NULL)
1907
1908 if (!PnpUnbindRpc(pMachine->BindingHandle))
1909 return CR_ACCESS_DENIED;
1910 }
1911
1912 HeapFree(GetProcessHeap(), 0, pMachine);
1913
1914 return CR_SUCCESS;
1915}
RPC_STATUS PnpUnbindRpc(RPC_BINDING_HANDLE *BindingHandle)
Definition: rpc.c:53

Referenced by DestroyDeviceInfoSet(), DeviceProblemWizardW(), DisplayDeviceAdvancedProperties(), SetupDiBuildClassInfoListExW(), SetupDiGetClassRegistryPropertyA(), SetupDiGetClassRegistryPropertyW(), SetupDiSetClassRegistryPropertyA(), and SetupDiSetClassRegistryPropertyW().

◆ CM_Dup_Range_List()

CMAPI CONFIGRET WINAPI CM_Dup_Range_List ( _In_ RANGE_LIST  rlhOld,
_In_ RANGE_LIST  rlhNew,
_In_ ULONG  ulFlags 
)

Definition at line 1923 of file cfgmgr.c.

1927{
1928 PINTERNAL_RANGE_LIST pOldRangeList, pNewRangeList;
1929 PINTERNAL_RANGE pOldRange, pNewRange;
1930 PLIST_ENTRY ListEntry;
1932
1933 FIXME("CM_Dup_Range_List(%p %p %lx)\n",
1934 rlhOld, rlhNew, ulFlags);
1935
1936 pOldRangeList = (PINTERNAL_RANGE_LIST)rlhOld;
1937 pNewRangeList = (PINTERNAL_RANGE_LIST)rlhNew;
1938
1939 if (!IsValidRangeList(pOldRangeList))
1940 return CR_INVALID_RANGE_LIST;
1941
1942 if (!IsValidRangeList(pNewRangeList))
1943 return CR_INVALID_RANGE_LIST;
1944
1945 if (ulFlags != 0)
1946 return CR_INVALID_FLAG;
1947
1948 /* Lock the range lists */
1949 WaitForSingleObject(pOldRangeList->hMutex, INFINITE);
1950 WaitForSingleObject(pNewRangeList->hMutex, INFINITE);
1951
1952 /* Delete the new range list, if ist is not empty */
1953 while (!IsListEmpty(&pNewRangeList->ListHead))
1954 {
1955 ListEntry = RemoveHeadList(&pNewRangeList->ListHead);
1956 pNewRange = CONTAINING_RECORD(ListEntry, INTERNAL_RANGE, ListEntry);
1957 HeapFree(GetProcessHeap(), 0, pNewRange);
1958 }
1959
1960 /* Copy the old range list into the new range list */
1961 ListEntry = &pOldRangeList->ListHead;
1962 while (ListEntry->Flink == &pOldRangeList->ListHead)
1963 {
1964 pOldRange = CONTAINING_RECORD(ListEntry, INTERNAL_RANGE, ListEntry);
1965
1966 pNewRange = HeapAlloc(GetProcessHeap(), 0, sizeof(INTERNAL_RANGE));
1967 if (pNewRange == NULL)
1968 {
1970 goto done;
1971 }
1972
1973 pNewRange->pRangeList = pNewRangeList;
1974 pNewRange->ullStart = pOldRange->ullStart;
1975 pNewRange->ullEnd = pOldRange->ullEnd;
1976
1977 InsertTailList(&pNewRangeList->ListHead, &pNewRange->ListEntry);
1978
1979 ListEntry = ListEntry->Flink;
1980 }
1981
1982done:
1983 /* Unlock the range lists */
1984 ReleaseMutex(pNewRangeList->hMutex);
1985 ReleaseMutex(pOldRangeList->hMutex);
1986
1987 return ret;
1988}
#define RemoveHeadList(ListHead)
Definition: env_spec_w32.h:964
Definition: typedefs.h:120
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

◆ CM_Duplicate_PowerScheme()

CONFIGRET CM_Duplicate_PowerScheme ( _In_ CONST GUID SourceSchemeGuid,
_Inout_ GUID **  DestinationSchemeGuid,
_Out_ PDWORD  Error 
)

◆ CM_Enable_DevNode()

CMAPI CONFIGRET WINAPI CM_Enable_DevNode ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 1996 of file cfgmgr.c.

1999{
2000 TRACE("CM_Enable_DevNode(%p %lx)\n",
2001 dnDevInst, ulFlags);
2002
2003 return CM_Enable_DevNode_Ex(dnDevInst, ulFlags, NULL);
2004}
CONFIGRET WINAPI CM_Enable_DevNode_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2012

◆ CM_Enable_DevNode_Ex()

CMAPI CONFIGRET WINAPI CM_Enable_DevNode_Ex ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2012 of file cfgmgr.c.

2016{
2018 HSTRING_TABLE StringTable = NULL;
2019 LPWSTR lpDevInst;
2020 CONFIGRET ret;
2021
2022 TRACE("CM_Enable_DevNode_Ex(%p %lx %p)\n",
2023 dnDevInst, ulFlags, hMachine);
2024
2025 if (!pSetupIsUserAdmin())
2026 return CR_ACCESS_DENIED;
2027
2028 if (dnDevInst == 0)
2029 return CR_INVALID_DEVINST;
2030
2031 if (ulFlags != 0)
2032 return CR_INVALID_FLAG;
2033
2034 if (hMachine != NULL)
2035 {
2036 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
2037 if (BindingHandle == NULL)
2038 return CR_FAILURE;
2039
2040 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
2041 if (StringTable == 0)
2042 return CR_FAILURE;
2043 }
2044 else
2045 {
2046 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
2047 return CR_FAILURE;
2048 }
2049
2050 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
2051 if (lpDevInst == NULL)
2052 return CR_INVALID_DEVNODE;
2053
2055 {
2057 PNP_DEVINST_ENABLE,
2058 ulFlags,
2059 lpDevInst,
2060 NULL);
2061 }
2063 {
2065 }
2067
2068 return ret;
2069}
DWORD WINAPI PNP_DeviceInstanceAction(handle_t hBinding, DWORD ulMajorAction, DWORD ulMinorAction, LPWSTR pszDeviceInstance1, LPWSTR pszDeviceInstance2)
Definition: rpcserver.c:3414

Referenced by CM_Enable_DevNode(), ResetDevice(), and SetupDiRestartDevices().

◆ CM_Enumerate_Classes()

CMAPI CONFIGRET WINAPI CM_Enumerate_Classes ( _In_ ULONG  ulClassIndex,
_Out_ LPGUID  ClassGuid,
_In_ ULONG  ulFlags 
)

Definition at line 2077 of file cfgmgr.c.

2081{
2082 TRACE("CM_Enumerate_Classes(%lx %p %lx)\n",
2083 ulClassIndex, ClassGuid, ulFlags);
2084
2085 return CM_Enumerate_Classes_Ex(ulClassIndex, ClassGuid, ulFlags, NULL);
2086}
CONFIGRET WINAPI CM_Enumerate_Classes_Ex(_In_ ULONG ulClassIndex, _Out_ LPGUID ClassGuid, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2094

Referenced by EnumDeviceClasses(), and CDeviceView::GetNextClass().

◆ CM_Enumerate_Classes_Ex()

CMAPI CONFIGRET WINAPI CM_Enumerate_Classes_Ex ( _In_ ULONG  ulClassIndex,
_Out_ LPGUID  ClassGuid,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2094 of file cfgmgr.c.

2099{
2100 WCHAR szBuffer[MAX_GUID_STRING_LEN];
2103 ULONG ulLength = MAX_GUID_STRING_LEN;
2104
2105 TRACE("CM_Enumerate_Classes_Ex(%lx %p %lx %p)\n",
2106 ulClassIndex, ClassGuid, ulFlags, hMachine);
2107
2108 if (ClassGuid == NULL)
2109 return CR_INVALID_POINTER;
2110
2111 if (ulFlags != 0)
2112 return CR_INVALID_FLAG;
2113
2114 if (hMachine != NULL)
2115 {
2116 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
2117 if (BindingHandle == NULL)
2118 return CR_FAILURE;
2119 }
2120 else
2121 {
2123 return CR_FAILURE;
2124 }
2125
2127 {
2129 PNP_CLASS_SUBKEYS,
2130 ulClassIndex,
2131 szBuffer,
2133 &ulLength,
2134 ulFlags);
2135 }
2137 {
2139 }
2141
2142 if (ret == CR_SUCCESS)
2143 {
2144 /* Remove the {} */
2145 szBuffer[MAX_GUID_STRING_LEN - 2] = UNICODE_NULL;
2146
2147 /* Convert the buffer to a GUID */
2148 if (UuidFromStringW(&szBuffer[1], ClassGuid) != RPC_S_OK)
2149 return CR_FAILURE;
2150 }
2151
2152 return ret;
2153}
DWORD WINAPI PNP_EnumerateSubKeys(handle_t hBinding, DWORD ulBranch, DWORD ulIndex, LPWSTR Buffer, PNP_RPC_STRING_LEN ulLength, PNP_RPC_STRING_LEN *pulRequiredLen, DWORD ulFlags)
Definition: rpcserver.c:973
#define UNICODE_NULL
#define RPC_S_OK
Definition: rpcnterr.h:22
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
Definition: rpcrt4_main.c:614

Referenced by CM_Enumerate_Classes(), and SetupDiBuildClassInfoListExW().

◆ CM_Enumerate_Enumerators_ExA()

CMAPI CONFIGRET WINAPI CM_Enumerate_Enumerators_ExA ( _In_ ULONG  ulEnumIndex,
_Out_writes_ *pulLength PCHAR  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2199 of file cfgmgr.c.

2205{
2206 WCHAR szBuffer[MAX_DEVICE_ID_LEN];
2207 ULONG ulOrigLength;
2208 ULONG ulLength;
2210
2211 TRACE("CM_Enumerate_Enumerators_ExA(%lu %p %p %lx %p)\n",
2212 ulEnumIndex, Buffer, pulLength, ulFlags, hMachine);
2213
2214 if (Buffer == NULL || pulLength == NULL)
2215 return CR_INVALID_POINTER;
2216
2217 if (ulFlags != 0)
2218 return CR_INVALID_FLAG;
2219
2220 ulOrigLength = *pulLength;
2221 *pulLength = 0;
2222
2223 ulLength = MAX_DEVICE_ID_LEN;
2224 ret = CM_Enumerate_Enumerators_ExW(ulEnumIndex, szBuffer, &ulLength,
2225 ulFlags, hMachine);
2226 if (ret == CR_SUCCESS)
2227 {
2229 0,
2230 szBuffer,
2231 ulLength,
2232 Buffer,
2233 ulOrigLength,
2234 NULL,
2235 NULL) == 0)
2236 ret = CR_FAILURE;
2237 else
2238 *pulLength = lstrlenA(Buffer) + 1;
2239 }
2240
2241 return ret;
2242}
CONFIGRET WINAPI CM_Enumerate_Enumerators_ExW(_In_ ULONG ulEnumIndex, _Out_writes_(*pulLength) PWCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2250
Definition: bufpool.h:45
#define CP_ACP
Definition: compat.h:109
#define WideCharToMultiByte
Definition: compat.h:111
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145

Referenced by CM_Enumerate_EnumeratorsA().

◆ CM_Enumerate_Enumerators_ExW()

CMAPI CONFIGRET WINAPI CM_Enumerate_Enumerators_ExW ( _In_ ULONG  ulEnumIndex,
_Out_writes_ *pulLength PWCHAR  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2250 of file cfgmgr.c.

2256{
2258 CONFIGRET ret;
2259
2260 TRACE("CM_Enumerate_Enumerators_ExW(%lu %p %p %lx %p)\n",
2261 ulEnumIndex, Buffer, pulLength, ulFlags, hMachine);
2262
2263 if (Buffer == NULL || pulLength == NULL)
2264 return CR_INVALID_POINTER;
2265
2266 if (ulFlags != 0)
2267 return CR_INVALID_FLAG;
2268
2270
2271 if (hMachine != NULL)
2272 {
2273 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
2274 if (BindingHandle == NULL)
2275 return CR_FAILURE;
2276 }
2277 else
2278 {
2280 return CR_FAILURE;
2281 }
2282
2284 {
2286 PNP_ENUMERATOR_SUBKEYS,
2287 ulEnumIndex,
2288 Buffer,
2289 *pulLength,
2290 pulLength,
2291 ulFlags);
2292 }
2294 {
2296 }
2298
2299 return ret;
2300}

Referenced by CM_Enumerate_Enumerators_ExA(), and CM_Enumerate_EnumeratorsW().

◆ CM_Enumerate_EnumeratorsA()

CMAPI CONFIGRET WINAPI CM_Enumerate_EnumeratorsA ( _In_ ULONG  ulEnumIndex,
_Out_writes_ *pulLength PCHAR  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 2161 of file cfgmgr.c.

2166{
2167 TRACE("CM_Enumerate_EnumeratorsA(%lu %p %p %lx)\n",
2168 ulEnumIndex, Buffer, pulLength, ulFlags);
2169
2170 return CM_Enumerate_Enumerators_ExA(ulEnumIndex, Buffer, pulLength,
2171 ulFlags, NULL);
2172}
CONFIGRET WINAPI CM_Enumerate_Enumerators_ExA(_In_ ULONG ulEnumIndex, _Out_writes_(*pulLength) PCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2199

◆ CM_Enumerate_EnumeratorsW()

CMAPI CONFIGRET WINAPI CM_Enumerate_EnumeratorsW ( _In_ ULONG  ulEnumIndex,
_Out_writes_ *pulLength PWCHAR  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 2180 of file cfgmgr.c.

2185{
2186 TRACE("CM_Enumerate_EnumeratorsW(%lu %p %p %lx)\n",
2187 ulEnumIndex, Buffer, pulLength, ulFlags);
2188
2189 return CM_Enumerate_Enumerators_ExW(ulEnumIndex, Buffer, pulLength,
2190 ulFlags, NULL);
2191}

◆ CM_Find_Range()

CMAPI CONFIGRET WINAPI CM_Find_Range ( _Out_ PDWORDLONG  pullStart,
_In_ DWORDLONG  ullStart,
_In_ ULONG  ulLength,
_In_ DWORDLONG  ullAlignment,
_In_ DWORDLONG  ullEnd,
_In_ RANGE_LIST  rlh,
_In_ ULONG  ulFlags 
)

Definition at line 2308 of file cfgmgr.c.

2316{
2317 FIXME("CM_Find_Range(%p %I64u %lu %I64u %I64u %p %lx)\n",
2318 pullStart, ullStart, ulLength, ullAlignment, ullEnd, rlh, ulFlags);
2319
2321}

◆ CM_First_Range()

CMAPI CONFIGRET WINAPI CM_First_Range ( _In_ RANGE_LIST  rlh,
_Out_ PDWORDLONG  pullStart,
_Out_ PDWORDLONG  pullEnd,
_Out_ PRANGE_ELEMENT  preElement,
_In_ ULONG  ulFlags 
)

Definition at line 2329 of file cfgmgr.c.

2335{
2336 PINTERNAL_RANGE_LIST pRangeList;
2337 PINTERNAL_RANGE pRange;
2338 PLIST_ENTRY ListEntry;
2340
2341 FIXME("CM_First_Range(%p %p %p %p %lx)\n",
2342 rlh, pullStart, pullEnd, preElement, ulFlags);
2343
2344 pRangeList = (PINTERNAL_RANGE_LIST)rlh;
2345
2346 if (!IsValidRangeList(pRangeList))
2347 return CR_INVALID_RANGE_LIST;
2348
2349 if (pullStart == NULL || pullEnd == NULL || preElement == NULL)
2350 return CR_INVALID_POINTER;
2351
2352 if (ulFlags != 0)
2353 return CR_INVALID_FLAG;
2354
2355 /* Lock the range list */
2356 WaitForSingleObject(pRangeList->hMutex, INFINITE);
2357
2358 /* Fail, if the list is empty */
2359 if (IsListEmpty(&pRangeList->ListHead))
2360 {
2361 ret = CR_FAILURE;
2362 goto done;
2363 }
2364
2365 /* Get the first range */
2366 ListEntry = pRangeList->ListHead.Flink;
2367 pRange = CONTAINING_RECORD(ListEntry, INTERNAL_RANGE, ListEntry);
2368
2369 /* Return the range data */
2370 *pullStart = pRange->ullStart;
2371 *pullEnd = pRange->ullEnd;
2372 *preElement = (RANGE_ELEMENT)pRange;
2373
2374done:
2375 /* Unlock the range list */
2376 ReleaseMutex(pRangeList->hMutex);
2377
2378 return ret;
2379}
DWORD_PTR RANGE_ELEMENT
Definition: cfgmgr32.h:105

◆ CM_Free_Log_Conf()

CMAPI CONFIGRET WINAPI CM_Free_Log_Conf ( _In_ LOG_CONF  lcLogConfToBeFreed,
_In_ ULONG  ulFlags 
)

Definition at line 2387 of file cfgmgr.c.

2390{
2391 TRACE("CM_Free_Log_Conf(%lx %lx)\n",
2392 lcLogConfToBeFreed, ulFlags);
2393
2394 return CM_Free_Log_Conf_Ex(lcLogConfToBeFreed, ulFlags, NULL);
2395}
CONFIGRET WINAPI CM_Free_Log_Conf_Ex(_In_ LOG_CONF lcLogConfToBeFreed, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2403

◆ CM_Free_Log_Conf_Ex()

CMAPI CONFIGRET WINAPI CM_Free_Log_Conf_Ex ( _In_ LOG_CONF  lcLogConfToBeFreed,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2403 of file cfgmgr.c.

2407{
2409 HSTRING_TABLE StringTable = NULL;
2410 LPWSTR lpDevInst;
2411 PLOG_CONF_INFO pLogConfInfo;
2412 CONFIGRET ret;
2413
2414 TRACE("CM_Free_Log_Conf_Ex(%lx %lx %p)\n",
2415 lcLogConfToBeFreed, ulFlags, hMachine);
2416
2417 if (!pSetupIsUserAdmin())
2418 return CR_ACCESS_DENIED;
2419
2420 pLogConfInfo = (PLOG_CONF_INFO)lcLogConfToBeFreed;
2421 if (!IsValidLogConf(pLogConfInfo))
2422 return CR_INVALID_LOG_CONF;
2423
2424 if (ulFlags != 0)
2425 return CR_INVALID_FLAG;
2426
2427 if (hMachine != NULL)
2428 {
2429 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
2430 if (BindingHandle == NULL)
2431 return CR_FAILURE;
2432
2433 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
2434 if (StringTable == 0)
2435 return CR_FAILURE;
2436 }
2437 else
2438 {
2439 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
2440 return CR_FAILURE;
2441 }
2442
2443 lpDevInst = pSetupStringTableStringFromId(StringTable, pLogConfInfo->dnDevInst);
2444 if (lpDevInst == NULL)
2445 return CR_INVALID_DEVNODE;
2446
2448 {
2450 lpDevInst,
2451 pLogConfInfo->ulType,
2452 pLogConfInfo->ulTag,
2453 0);
2454 }
2456 {
2458 }
2460
2461 return ret;
2462}
DWORD WINAPI PNP_FreeLogConf(handle_t hBinding, LPWSTR pDeviceID, DWORD ulLogConfType, DWORD ulLogConfTag, DWORD ulFlags)
Definition: rpcserver.c:4394
#define CR_INVALID_LOG_CONF
Definition: cfgmgr32.h:850
BOOL IsValidLogConf(_In_opt_ PLOG_CONF_INFO pLogConfInfo)
Definition: cfgmgr.c:419
struct _LOG_CONF_INFO * PLOG_CONF_INFO

Referenced by CM_Free_Log_Conf().

◆ CM_Free_Log_Conf_Handle()

CMAPI CONFIGRET WINAPI CM_Free_Log_Conf_Handle ( _In_ LOG_CONF  lcLogConf)

Definition at line 2470 of file cfgmgr.c.

2472{
2473 PLOG_CONF_INFO pLogConfInfo;
2474
2475 TRACE("CM_Free_Log_Conf_Handle(%lx)\n", lcLogConf);
2476
2477 pLogConfInfo = (PLOG_CONF_INFO)lcLogConf;
2478 if (!IsValidLogConf(pLogConfInfo))
2479 return CR_INVALID_LOG_CONF;
2480
2481 HeapFree(GetProcessHeap(), 0, pLogConfInfo);
2482
2483 return CR_SUCCESS;
2484}

◆ CM_Free_Range_List()

CMAPI CONFIGRET WINAPI CM_Free_Range_List ( _In_ RANGE_LIST  rlh,
_In_ ULONG  ulFlags 
)

Definition at line 2492 of file cfgmgr.c.

2495{
2496 PINTERNAL_RANGE_LIST pRangeList;
2497 PINTERNAL_RANGE pRange;
2498 PLIST_ENTRY ListEntry;
2499
2500 FIXME("CM_Free_Range_List(%p %lx)\n",
2501 RangeList, ulFlags);
2502
2503 pRangeList = (PINTERNAL_RANGE_LIST)RangeList;
2504
2505 if (!IsValidRangeList(pRangeList))
2506 return CR_INVALID_RANGE_LIST;
2507
2508 if (ulFlags != 0)
2509 return CR_INVALID_FLAG;
2510
2511 /* Lock the range list */
2512 WaitForSingleObject(pRangeList->hMutex, INFINITE);
2513
2514 /* Free the list of ranges */
2515 while (!IsListEmpty(&pRangeList->ListHead))
2516 {
2517 ListEntry = RemoveHeadList(&pRangeList->ListHead);
2518 pRange = CONTAINING_RECORD(ListEntry, INTERNAL_RANGE, ListEntry);
2519 HeapFree(GetProcessHeap(), 0, pRange);
2520 }
2521
2522 /* Unlock the range list */
2523 ReleaseMutex(pRangeList->hMutex);
2524
2525 /* Close the mutex */
2526 CloseHandle(pRangeList->hMutex);
2527
2528 /* Free the range list */
2529 HeapFree(GetProcessHeap(), 0, pRangeList);
2530
2531 return CR_SUCCESS;
2532}
#define CloseHandle
Definition: compat.h:739

◆ CM_Free_Res_Des()

CMAPI CONFIGRET WINAPI CM_Free_Res_Des ( _Out_opt_ PRES_DES  prdResDes,
_In_ RES_DES  rdResDes,
_In_ ULONG  ulFlags 
)

◆ CM_Free_Res_Des_Ex()

CMAPI CONFIGRET WINAPI CM_Free_Res_Des_Ex ( _Out_opt_ PRES_DES  prdResDes,
_In_ RES_DES  rdResDes,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Free_Res_Des_Handle()

CMAPI CONFIGRET WINAPI CM_Free_Res_Des_Handle ( _In_ RES_DES  rdResDes)

Definition at line 2575 of file cfgmgr.c.

2577{
2578 PRES_DES_INFO pResDesInfo;
2579
2580 FIXME("CM_Free_Res_Des_Handle(%p)\n", rdResDes);
2581
2582 pResDesInfo = (PRES_DES_INFO)rdResDes;
2583 if (!IsValidResDes(pResDesInfo))
2584 return CR_INVALID_RES_DES;
2585
2586 HeapFree(GetProcessHeap(), 0, pResDesInfo);
2587
2588 return CR_SUCCESS;
2589}
#define CR_INVALID_RES_DES
Definition: cfgmgr32.h:849
BOOL IsValidResDes(_In_opt_ PRES_DES_INFO pResDesInfo)
Definition: cfgmgr.c:443
struct _RES_DES_INFO * PRES_DES_INFO

◆ CM_Free_Resource_Conflict_Handle()

CMAPI CONFIGRET WINAPI CM_Free_Resource_Conflict_Handle ( _In_ CONFLICT_LIST  clConflictList)

Definition at line 2597 of file cfgmgr.c.

2599{
2600 PCONFLICT_DATA pConflictData;
2601
2602 FIXME("CM_Free_Resource_Conflict_Handle(%p)\n",
2603 clConflictList);
2604
2605 pConflictData = (PCONFLICT_DATA)clConflictList;
2606 if (!IsValidConflictData(pConflictData))
2608
2609 if (pConflictData->pConflictList != NULL)
2610 MyFree(pConflictData->pConflictList);
2611
2612 MyFree(pConflictData);
2613
2614 return CR_SUCCESS;
2615}
#define CR_INVALID_CONFLICT_LIST
Definition: cfgmgr32.h:903
BOOL IsValidConflictData(_In_opt_ PCONFLICT_DATA pConflictData)
Definition: cfgmgr.c:467
struct _CONFLICT_DATA * PCONFLICT_DATA
PPNP_CONFLICT_LIST pConflictList
Definition: cfgmgr.c:108

◆ CM_Get_Child()

CMAPI CONFIGRET WINAPI CM_Get_Child ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 2623 of file cfgmgr.c.

2627{
2628 TRACE("CM_Get_Child(%p %p %lx)\n",
2629 pdnDevInst, dnDevInst, ulFlags);
2630
2631 return CM_Get_Child_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
2632}
CONFIGRET WINAPI CM_Get_Child_Ex(_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2640

Referenced by CfmListRecursiveInsertSubDevices(), DevTreeRecursiveInsertSubDevices(), CDeviceView::GetChildDevice(), and GetMonitorDevInstID().

◆ CM_Get_Child_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Child_Ex ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2640 of file cfgmgr.c.

2645{
2646 WCHAR szRelatedDevInst[MAX_DEVICE_ID_LEN];
2648 HSTRING_TABLE StringTable = NULL;
2649 LPWSTR lpDevInst;
2650 DWORD dwIndex, dwLength = MAX_DEVICE_ID_LEN;
2651 CONFIGRET ret;
2652
2653 TRACE("CM_Get_Child_Ex(%p %lx %lx %p)\n",
2654 pdnDevInst, dnDevInst, ulFlags, hMachine);
2655
2656 if (pdnDevInst == NULL)
2657 return CR_INVALID_POINTER;
2658
2659 if (dnDevInst == 0)
2660 return CR_INVALID_DEVINST;
2661
2662 if (ulFlags != 0)
2663 return CR_INVALID_FLAG;
2664
2665 *pdnDevInst = -1;
2666
2667 if (hMachine != NULL)
2668 {
2669 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
2670 if (BindingHandle == NULL)
2671 return CR_FAILURE;
2672
2673 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
2674 if (StringTable == 0)
2675 return CR_FAILURE;
2676 }
2677 else
2678 {
2679 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
2680 return CR_FAILURE;
2681 }
2682
2683 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
2684 if (lpDevInst == NULL)
2685 return CR_INVALID_DEVNODE;
2686
2688 {
2690 PNP_GET_CHILD_DEVICE_INSTANCE,
2691 lpDevInst,
2692 szRelatedDevInst,
2693 &dwLength,
2694 0);
2695 }
2697 {
2699 }
2701
2702 if (ret != CR_SUCCESS)
2703 return ret;
2704
2705 TRACE("szRelatedDevInst: %s\n", debugstr_w(szRelatedDevInst));
2706
2707 dwIndex = pSetupStringTableAddString(StringTable, szRelatedDevInst, 1);
2708 if (dwIndex == -1)
2709 return CR_FAILURE;
2710
2711 *pdnDevInst = dwIndex;
2712
2713 return CR_SUCCESS;
2714}
DWORD WINAPI PNP_GetRelatedDeviceInstance(handle_t hBinding, DWORD ulRelationship, LPWSTR pDeviceID, LPWSTR pRelatedDeviceId, PNP_RPC_STRING_LEN *pulLength, DWORD ulFlags)
Definition: rpcserver.c:895
static DWORD DWORD * dwLength
Definition: fusion.c:86
unsigned long DWORD
Definition: ntddk_ex.h:95

Referenced by CM_Get_Child().

◆ CM_Get_Class_Key_Name_ExA()

CMAPI CONFIGRET WINAPI CM_Get_Class_Key_Name_ExA ( _In_ LPGUID  ClassGuid,
_Out_writes_opt_ *pulLength LPSTR  pszKeyName,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2760 of file cfgmgr.c.

2766{
2767 WCHAR szBuffer[MAX_GUID_STRING_LEN];
2769 ULONG ulLength;
2770 ULONG ulOrigLength;
2771
2772 TRACE("CM_Get_Class_Key_Name_ExA(%p %p %p %lx %p)\n",
2773 ClassGuid, pszKeyName, pulLength, ulFlags, hMachine);
2774
2775 if (ClassGuid == NULL || pszKeyName == NULL || pulLength == NULL)
2776 return CR_INVALID_POINTER;
2777
2778 ulOrigLength = *pulLength;
2779 *pulLength = 0;
2780
2781 ulLength = MAX_GUID_STRING_LEN;
2782 ret = CM_Get_Class_Key_Name_ExW(ClassGuid, szBuffer, &ulLength,
2783 ulFlags, hMachine);
2784 if (ret == CR_SUCCESS)
2785 {
2787 0,
2788 szBuffer,
2789 ulLength,
2790 pszKeyName,
2791 ulOrigLength,
2792 NULL,
2793 NULL) == 0)
2794 ret = CR_FAILURE;
2795 else
2796 *pulLength = lstrlenA(pszKeyName) + 1;
2797 }
2798
2799 return CR_SUCCESS;
2800}
CONFIGRET WINAPI CM_Get_Class_Key_Name_ExW(_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) LPWSTR pszKeyName, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2808

Referenced by CM_Get_Class_Key_NameA().

◆ CM_Get_Class_Key_Name_ExW()

CMAPI CONFIGRET WINAPI CM_Get_Class_Key_Name_ExW ( _In_ LPGUID  ClassGuid,
_Out_writes_opt_ *pulLength LPWSTR  pszKeyName,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2808 of file cfgmgr.c.

2814{
2815 TRACE("CM_Get_Class_Key_Name_ExW(%p %p %p %lx %p)\n",
2816 ClassGuid, pszKeyName, pulLength, ulFlags, hMachine);
2817
2818 if (ClassGuid == NULL || pszKeyName == NULL || pulLength == NULL)
2819 return CR_INVALID_POINTER;
2820
2821 if (ulFlags != 0)
2822 return CR_INVALID_FLAG;
2823
2824 if (*pulLength < MAX_GUID_STRING_LEN)
2825 {
2826 *pulLength = 0;
2827 return CR_BUFFER_SMALL;
2828 }
2829
2830 if (!GuidToString(ClassGuid, pszKeyName))
2831 return CR_INVALID_DATA;
2832
2833 *pulLength = MAX_GUID_STRING_LEN;
2834
2835 return CR_SUCCESS;
2836}
#define CR_BUFFER_SMALL
Definition: cfgmgr32.h:872

Referenced by CM_Get_Class_Key_Name_ExA(), and CM_Get_Class_Key_NameW().

◆ CM_Get_Class_Key_NameA()

CMAPI CONFIGRET WINAPI CM_Get_Class_Key_NameA ( _In_ LPGUID  ClassGuid,
_Out_writes_opt_ *pulLength LPSTR  pszKeyName,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 2722 of file cfgmgr.c.

2727{
2728 TRACE("CM_Get_Class_Key_NameA(%p %p %p %lx)\n",
2729 ClassGuid, pszKeyName, pulLength, ulFlags);
2730
2731 return CM_Get_Class_Key_Name_ExA(ClassGuid, pszKeyName, pulLength,
2732 ulFlags, NULL);
2733}
CONFIGRET WINAPI CM_Get_Class_Key_Name_ExA(_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) LPSTR pszKeyName, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2760

◆ CM_Get_Class_Key_NameW()

CMAPI CONFIGRET WINAPI CM_Get_Class_Key_NameW ( _In_ LPGUID  ClassGuid,
_Out_writes_opt_ *pulLength LPWSTR  pszKeyName,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 2741 of file cfgmgr.c.

2746{
2747 TRACE("CM_Get_Class_Key_NameW(%p %p %p %lx)\n",
2748 ClassGuid, pszKeyName, pulLength, ulFlags);
2749
2750 return CM_Get_Class_Key_Name_ExW(ClassGuid, pszKeyName, pulLength,
2751 ulFlags, NULL);
2752}

◆ CM_Get_Class_Name_ExA()

CMAPI CONFIGRET WINAPI CM_Get_Class_Name_ExA ( _In_ LPGUID  ClassGuid,
_Out_writes_opt_ *pulLength PCHAR  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2882 of file cfgmgr.c.

2888{
2889 WCHAR szBuffer[MAX_CLASS_NAME_LEN];
2891 ULONG ulLength;
2892 ULONG ulOrigLength;
2893
2894 TRACE("CM_Get_Class_Name_ExA(%p %p %p %lx %p)\n",
2895 ClassGuid, Buffer, pulLength, ulFlags, hMachine);
2896
2897 if (ClassGuid == NULL || Buffer == NULL || pulLength == NULL)
2898 return CR_INVALID_POINTER;
2899
2900 ulOrigLength = *pulLength;
2901 *pulLength = 0;
2902
2903 ulLength = MAX_CLASS_NAME_LEN;
2904 ret = CM_Get_Class_Name_ExW(ClassGuid, szBuffer, &ulLength,
2905 ulFlags, hMachine);
2906 if (ret == CR_SUCCESS)
2907 {
2909 0,
2910 szBuffer,
2911 ulLength,
2912 Buffer,
2913 ulOrigLength,
2914 NULL,
2915 NULL) == 0)
2916 ret = CR_FAILURE;
2917 else
2918 *pulLength = lstrlenA(Buffer) + 1;
2919 }
2920
2921 return ret;
2922}
#define MAX_CLASS_NAME_LEN
Definition: cfgmgr32.h:52
CONFIGRET WINAPI CM_Get_Class_Name_ExW(_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) PWCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2930

Referenced by CM_Get_Class_NameA().

◆ CM_Get_Class_Name_ExW()

CMAPI CONFIGRET WINAPI CM_Get_Class_Name_ExW ( _In_ LPGUID  ClassGuid,
_Out_writes_opt_ *pulLength PWCHAR  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 2930 of file cfgmgr.c.

2936{
2937 WCHAR szGuidString[MAX_GUID_STRING_LEN];
2939 CONFIGRET ret;
2940
2941 TRACE("CM_Get_Class_Name_ExW(%p %p %p %lx %p\n",
2942 ClassGuid, Buffer, pulLength, ulFlags, hMachine);
2943
2944 if (ClassGuid == NULL || Buffer == NULL || pulLength == NULL)
2945 return CR_INVALID_POINTER;
2946
2947 if (ulFlags != 0)
2948 return CR_INVALID_FLAG;
2949
2950 if (!GuidToString(ClassGuid, szGuidString))
2951 return CR_INVALID_DATA;
2952
2953 TRACE("Guid %s\n", debugstr_w(szGuidString));
2954
2955 if (hMachine != NULL)
2956 {
2957 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
2958 if (BindingHandle == NULL)
2959 return CR_FAILURE;
2960 }
2961 else
2962 {
2964 return CR_FAILURE;
2965 }
2966
2968 {
2970 szGuidString,
2971 Buffer,
2972 pulLength,
2973 ulFlags);
2974 }
2976 {
2978 }
2980
2981 return ret;
2982}
DWORD WINAPI PNP_GetClassName(handle_t hBinding, LPWSTR pszClassGuid, LPWSTR Buffer, PNP_RPC_STRING_LEN *pulLength, DWORD ulFlags)
Definition: rpcserver.c:2542

Referenced by CM_Get_Class_Name_ExA(), and CM_Get_Class_NameW().

◆ CM_Get_Class_NameA()

CMAPI CONFIGRET WINAPI CM_Get_Class_NameA ( _In_ LPGUID  ClassGuid,
_Out_writes_opt_ *pulLength PCHAR  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 2844 of file cfgmgr.c.

2849{
2850 TRACE("CM_Get_Class_NameA(%p %p %p %lx)\n",
2851 ClassGuid, Buffer, pulLength, ulFlags);
2852
2853 return CM_Get_Class_Name_ExA(ClassGuid, Buffer, pulLength, ulFlags,
2854 NULL);
2855}
CONFIGRET WINAPI CM_Get_Class_Name_ExA(_In_ LPGUID ClassGuid, _Out_writes_opt_(*pulLength) PCHAR Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:2882

◆ CM_Get_Class_NameW()

CMAPI CONFIGRET WINAPI CM_Get_Class_NameW ( _In_ LPGUID  ClassGuid,
_Out_writes_opt_ *pulLength PWCHAR  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 2863 of file cfgmgr.c.

2868{
2869 TRACE("CM_Get_Class_NameW(%p %p %p %lx)\n",
2870 ClassGuid, Buffer, pulLength, ulFlags);
2871
2872 return CM_Get_Class_Name_ExW(ClassGuid, Buffer, pulLength, ulFlags,
2873 NULL);
2874}

◆ CM_Get_Class_Registry_PropertyA()

CMAPI CONFIGRET WINAPI CM_Get_Class_Registry_PropertyA ( _In_ LPGUID  ClassGuid,
_In_ ULONG  ulProperty,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Get_Class_Registry_PropertyW()

CMAPI CONFIGRET WINAPI CM_Get_Class_Registry_PropertyW ( _In_ LPGUID  ClassGuid,
_In_ ULONG  ulProperty,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Get_Depth()

CMAPI CONFIGRET WINAPI CM_Get_Depth ( _Out_ PULONG  pulDepth,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 3148 of file cfgmgr.c.

3152{
3153 TRACE("CM_Get_Depth(%p %lx %lx)\n",
3154 pulDepth, dnDevInst, ulFlags);
3155
3156 return CM_Get_Depth_Ex(pulDepth, dnDevInst, ulFlags, NULL);
3157}
CONFIGRET WINAPI CM_Get_Depth_Ex(_Out_ PULONG pulDepth, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:3165

◆ CM_Get_Depth_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Depth_Ex ( _Out_ PULONG  pulDepth,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 3165 of file cfgmgr.c.

3170{
3172 HSTRING_TABLE StringTable = NULL;
3173 LPWSTR lpDevInst;
3174 CONFIGRET ret;
3175
3176 TRACE("CM_Get_Depth_Ex(%p %lx %lx %p)\n",
3177 pulDepth, dnDevInst, ulFlags, hMachine);
3178
3179 if (pulDepth == NULL)
3180 return CR_INVALID_POINTER;
3181
3182 if (dnDevInst == 0)
3183 return CR_INVALID_DEVINST;
3184
3185 if (ulFlags != 0)
3186 return CR_INVALID_FLAG;
3187
3188 if (hMachine != NULL)
3189 {
3190 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
3191 if (BindingHandle == NULL)
3192 return CR_FAILURE;
3193
3194 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
3195 if (StringTable == 0)
3196 return CR_FAILURE;
3197 }
3198 else
3199 {
3200 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
3201 return CR_FAILURE;
3202 }
3203
3204 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
3205 if (lpDevInst == NULL)
3206 return CR_INVALID_DEVNODE;
3207
3209 {
3211 lpDevInst,
3212 pulDepth,
3213 ulFlags);
3214 }
3216 {
3218 }
3220
3221 return ret;
3222}
DWORD WINAPI PNP_GetDepth(handle_t hBinding, LPWSTR pszDeviceID, DWORD *pulDepth, DWORD ulFlags)
Definition: rpcserver.c:1840

Referenced by CM_Get_Depth().

◆ CM_Get_Device_ID_ExA()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ExA ( _In_ DEVINST  dnDevInst,
_Out_writes_(BufferLen) PCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 3787 of file cfgmgr.c.

3793{
3794 WCHAR szBufferW[MAX_DEVICE_ID_LEN];
3796
3797 TRACE("CM_Get_Device_ID_ExA(%lx %p %lu %lx %p)\n",
3798 dnDevInst, Buffer, BufferLen, ulFlags, hMachine);
3799
3800 if (Buffer == NULL)
3801 return CR_INVALID_POINTER;
3802
3803 ret = CM_Get_Device_ID_ExW(dnDevInst,
3804 szBufferW,
3806 ulFlags,
3807 hMachine);
3808 if (ret == CR_SUCCESS)
3809 {
3811 0,
3812 szBufferW,
3813 lstrlenW(szBufferW) + 1,
3814 Buffer,
3815 BufferLen,
3816 NULL,
3817 NULL) == 0)
3818 ret = CR_FAILURE;
3819 }
3820
3821 return ret;
3822}
CONFIGRET WINAPI CM_Get_Device_ID_ExW(_In_ DEVINST dnDevInst, _Out_writes_(BufferLen) PWCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:3830
#define lstrlenW
Definition: compat.h:750

Referenced by CM_Get_Device_IDA().

◆ CM_Get_Device_ID_ExW()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ExW ( _In_ DEVINST  dnDevInst,
_Out_writes_(BufferLen) PWCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 3830 of file cfgmgr.c.

3836{
3837 HSTRING_TABLE StringTable = NULL;
3838
3839 TRACE("CM_Get_Device_ID_ExW(%lx %p %lu %lx %p)\n",
3840 dnDevInst, Buffer, BufferLen, ulFlags, hMachine);
3841
3842 if (dnDevInst == 0)
3843 return CR_INVALID_DEVINST;
3844
3845 if (Buffer == NULL)
3846 return CR_INVALID_POINTER;
3847
3848 if (ulFlags != 0)
3849 return CR_INVALID_FLAG;
3850
3851 if (hMachine != NULL)
3852 {
3853 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
3854 if (StringTable == NULL)
3855 return CR_FAILURE;
3856 }
3857 else
3858 {
3859 if (!PnpGetLocalHandles(NULL, &StringTable))
3860 return CR_FAILURE;
3861 }
3862
3863 if (!pSetupStringTableStringFromIdEx(StringTable,
3864 dnDevInst,
3865 Buffer,
3866 &BufferLen))
3867 return CR_FAILURE;
3868
3869 return CR_SUCCESS;
3870}
BOOL WINAPI pSetupStringTableStringFromIdEx(HSTRING_TABLE hStringTable, DWORD dwId, LPWSTR lpBuffer, LPDWORD lpBufferLength)
Definition: stringtable.c:760

Referenced by CM_Get_Device_ID_ExA(), and CM_Get_Device_IDW().

◆ CM_Get_Device_ID_List_ExA()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_ExA ( _In_opt_ PCSTR  pszFilter,
_Out_writes_(BufferLen) PCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Get_Device_ID_List_ExW()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_ExW ( _In_opt_ PCWSTR  pszFilter,
_Out_writes_(BufferLen) PWCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Get_Device_ID_List_Size_ExA()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA ( _Out_ PULONG  pulLen,
_In_opt_ PCSTR  pszFilter,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4071 of file cfgmgr.c.

4076{
4077 LPWSTR pszFilterW = NULL;
4079
4080 FIXME("CM_Get_Device_ID_List_Size_ExA(%p %s %lx %p)\n",
4081 pulLen, debugstr_a(pszFilter), ulFlags, hMachine);
4082
4083 if (pszFilter == NULL)
4084 {
4086 NULL,
4087 ulFlags,
4088 hMachine);
4089 }
4090 else
4091 {
4092 if (pSetupCaptureAndConvertAnsiArg(pszFilter, &pszFilterW))
4093 return CR_INVALID_DEVICE_ID;
4094
4096 pszFilterW,
4097 ulFlags,
4098 hMachine);
4099
4100 MyFree(pszFilterW);
4101 }
4102
4103 return ret;
4104}
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW(_Out_ PULONG pulLen, _In_opt_ PCWSTR pszFilter, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4112

Referenced by CM_Get_Device_ID_List_SizeA().

◆ CM_Get_Device_ID_List_Size_ExW()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW ( _Out_ PULONG  pulLen,
_In_opt_ PCWSTR  pszFilter,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4112 of file cfgmgr.c.

4117{
4119 CONFIGRET ret;
4120
4121 FIXME("CM_Get_Device_ID_List_Size_ExW(%p %s %lx %p)\n",
4122 pulLen, debugstr_w(pszFilter), ulFlags, hMachine);
4123
4124 if (pulLen == NULL)
4125 return CR_INVALID_POINTER;
4126
4127 if (ulFlags & ~CM_GETIDLIST_FILTER_BITS)
4128 return CR_INVALID_FLAG;
4129
4130 if (hMachine != NULL)
4131 {
4132 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4133 if (BindingHandle == NULL)
4134 return CR_FAILURE;
4135 }
4136 else
4137 {
4139 return CR_FAILURE;
4140 }
4141
4142 *pulLen = 0;
4143
4145 {
4147 (LPWSTR)pszFilter,
4148 pulLen,
4149 ulFlags);
4150 }
4152 {
4154 }
4156
4157 return ret;
4158}
DWORD WINAPI PNP_GetDeviceListSize(handle_t hBinding, LPWSTR pszFilter, PNP_RPC_BUFFER_SIZE *pulLength, DWORD ulFlags)
Definition: rpcserver.c:1765
#define CM_GETIDLIST_FILTER_BITS
Definition: cfgmgr32.h:669

Referenced by CM_Get_Device_ID_List_Size_ExA(), CM_Get_Device_ID_List_SizeW(), and DisplayDeviceRelations().

◆ CM_Get_Device_ID_List_SizeA()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA ( _Out_ PULONG  pulLen,
_In_opt_ PCSTR  pszFilter,
_In_ ULONG  ulFlags 
)

Definition at line 4037 of file cfgmgr.c.

4041{
4042 TRACE("CM_Get_Device_ID_List_SizeA(%p %s %lx)\n",
4043 pulLen, debugstr_a(pszFilter), ulFlags);
4044
4045 return CM_Get_Device_ID_List_Size_ExA(pulLen, pszFilter, ulFlags, NULL);
4046}
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA(_Out_ PULONG pulLen, _In_opt_ PCSTR pszFilter, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4071

◆ CM_Get_Device_ID_List_SizeW()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW ( _Out_ PULONG  pulLen,
_In_opt_ PCWSTR  pszFilter,
_In_ ULONG  ulFlags 
)

Definition at line 4054 of file cfgmgr.c.

4058{
4059 TRACE("CM_Get_Device_ID_List_SizeW(%p %s %lx)\n",
4060 pulLen, debugstr_w(pszFilter), ulFlags);
4061
4062 return CM_Get_Device_ID_List_Size_ExW(pulLen, pszFilter, ulFlags, NULL);
4063}

◆ CM_Get_Device_ID_ListA()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ListA ( _In_opt_ PCSTR  pszFilter,
_Out_writes_(BufferLen) PCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags 
)

◆ CM_Get_Device_ID_ListW()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ListW ( _In_opt_ PCWSTR  pszFilter,
_Out_writes_(BufferLen) PWCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags 
)

◆ CM_Get_Device_ID_Size()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_Size ( _Out_ PULONG  pulLen,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 4166 of file cfgmgr.c.

4170{
4171 TRACE("CM_Get_Device_ID_Size(%p %lx %lx)\n",
4172 pulLen, dnDevInst, ulFlags);
4173
4174 return CM_Get_Device_ID_Size_Ex(pulLen, dnDevInst, ulFlags, NULL);
4175}
CONFIGRET WINAPI CM_Get_Device_ID_Size_Ex(_Out_ PULONG pulLen, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4183

Referenced by GetMonitorDevInstID(), CDeviceNode::SetupNode(), and ShowDeviceProperties().

◆ CM_Get_Device_ID_Size_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Device_ID_Size_Ex ( _Out_ PULONG  pulLen,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4183 of file cfgmgr.c.

4188{
4189 HSTRING_TABLE StringTable = NULL;
4190 LPWSTR DeviceId;
4191
4192 TRACE("CM_Get_Device_ID_Size_Ex(%p %lx %lx %p)\n",
4193 pulLen, dnDevInst, ulFlags, hMachine);
4194
4195 if (pulLen == NULL)
4196 return CR_INVALID_POINTER;
4197
4198 if (dnDevInst == 0)
4199 return CR_INVALID_DEVINST;
4200
4201 if (ulFlags != 0)
4202 return CR_INVALID_FLAG;
4203
4204 if (hMachine != NULL)
4205 {
4206 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
4207 if (StringTable == NULL)
4208 return CR_FAILURE;
4209 }
4210 else
4211 {
4212 if (!PnpGetLocalHandles(NULL, &StringTable))
4213 return CR_FAILURE;
4214 }
4215
4216 DeviceId = pSetupStringTableStringFromId(StringTable, dnDevInst);
4217 if (DeviceId == NULL)
4218 {
4219 *pulLen = 0;
4220 return CR_SUCCESS;
4221 }
4222
4223 *pulLen = lstrlenW(DeviceId);
4224
4225 return CR_SUCCESS;
4226}

Referenced by CM_Get_Device_ID_Size().

◆ CM_Get_Device_IDA()

CMAPI CONFIGRET WINAPI CM_Get_Device_IDA ( _In_ DEVINST  dnDevInst,
_Out_writes_(BufferLen) PCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags 
)

Definition at line 3751 of file cfgmgr.c.

3756{
3757 TRACE("CM_Get_Device_IDA(%lx %p %lu %lx)\n",
3758 dnDevInst, Buffer, BufferLen, ulFlags);
3759
3760 return CM_Get_Device_ID_ExA(dnDevInst, Buffer, BufferLen, ulFlags, NULL);
3761}
CONFIGRET WINAPI CM_Get_Device_ID_ExA(_In_ DEVINST dnDevInst, _Out_writes_(BufferLen) PCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:3787

Referenced by test_devnode().

◆ CM_Get_Device_IDW()

CMAPI CONFIGRET WINAPI CM_Get_Device_IDW ( _In_ DEVINST  dnDevInst,
_Out_writes_(BufferLen) PWCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags 
)

Definition at line 3769 of file cfgmgr.c.

3774{
3775 TRACE("CM_Get_Device_IDW(%lx %p %lu %lx)\n",
3776 dnDevInst, Buffer, BufferLen, ulFlags);
3777
3778 return CM_Get_Device_ID_ExW(dnDevInst, Buffer, BufferLen, ulFlags, NULL);
3779}

Referenced by CDeviceNode::SetupNode(), and ShowDeviceProperties().

◆ CM_Get_Device_Interface_Alias_ExA()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExA ( _In_ LPCSTR  pszDeviceInterface,
_In_ LPGUID  AliasInterfaceGuid,
_Out_writes_ *pulLength LPSTR  pszAliasDeviceInterface,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4278 of file cfgmgr.c.

4285{
4286 FIXME("CM_Get_Device_Interface_Alias_ExA(%p %p %p %p %lx %p)\n",
4287 pszDeviceInterface, AliasInterfaceGuid,
4288 pszAliasDeviceInterface, pulLength, ulFlags, hMachine);
4289
4291}

Referenced by CM_Get_Device_Interface_AliasA().

◆ CM_Get_Device_Interface_Alias_ExW()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExW ( _In_ LPCWSTR  pszDeviceInterface,
_In_ LPGUID  AliasInterfaceGuid,
_Out_writes_ *pulLength LPWSTR  pszAliasDeviceInterface,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4299 of file cfgmgr.c.

4306{
4308 ULONG ulTransferLength;
4310
4311 TRACE("CM_Get_Device_Interface_Alias_ExW(%p %p %p %p %lx %p)\n",
4312 pszDeviceInterface, AliasInterfaceGuid,
4313 pszAliasDeviceInterface, pulLength, ulFlags, hMachine);
4314
4315 if (pszDeviceInterface == NULL ||
4316 AliasInterfaceGuid == NULL ||
4317 pszAliasDeviceInterface == NULL ||
4318 pulLength == NULL)
4319 return CR_INVALID_POINTER;
4320
4321 if (ulFlags != 0)
4322 return CR_INVALID_FLAG;
4323
4324 if (hMachine != NULL)
4325 {
4326 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4327 if (BindingHandle == NULL)
4328 return CR_FAILURE;
4329 }
4330 else
4331 {
4333 return CR_FAILURE;
4334 }
4335
4336 ulTransferLength = *pulLength;
4337
4339 {
4341 (LPWSTR)pszDeviceInterface,
4342 AliasInterfaceGuid,
4343 pszAliasDeviceInterface,
4344 pulLength,
4345 &ulTransferLength,
4346 0);
4347 }
4349 {
4351 }
4353
4354 return ret;
4355}
DWORD WINAPI PNP_GetInterfaceDeviceAlias(handle_t hBinding, LPWSTR pszInterfaceDevice, GUID *AliasInterfaceGuid, LPWSTR pszAliasInterfaceDevice, PNP_RPC_STRING_LEN *pulLength, PNP_RPC_STRING_LEN *pulTransferLen, DWORD ulFlags)
Definition: rpcserver.c:2632

Referenced by CM_Get_Device_Interface_AliasW().

◆ CM_Get_Device_Interface_AliasA()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_AliasA ( _In_ LPCSTR  pszDeviceInterface,
_In_ LPGUID  AliasInterfaceGuid,
_Out_writes_ *pulLength LPSTR  pszAliasDeviceInterface,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 4234 of file cfgmgr.c.

4240{
4241 TRACE("CM_Get_Device_Interface_AliasA(%p %p %p %p %lx)\n",
4242 pszDeviceInterface, AliasInterfaceGuid,
4243 pszAliasDeviceInterface, pulLength, ulFlags);
4244
4245 return CM_Get_Device_Interface_Alias_ExA(pszDeviceInterface,
4246 AliasInterfaceGuid, pszAliasDeviceInterface, pulLength,
4247 ulFlags, NULL);
4248}
CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExA(_In_ LPCSTR pszDeviceInterface, _In_ LPGUID AliasInterfaceGuid, _Out_writes_(*pulLength) LPSTR pszAliasDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4278

◆ CM_Get_Device_Interface_AliasW()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_AliasW ( _In_ LPCWSTR  pszDeviceInterface,
_In_ LPGUID  AliasInterfaceGuid,
_Out_writes_ *pulLength LPWSTR  pszAliasDeviceInterface,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 4256 of file cfgmgr.c.

4262{
4263 TRACE("CM_Get_Device_Interface_AliasW(%p %p %p %p %lx)\n",
4264 pszDeviceInterface, AliasInterfaceGuid,
4265 pszAliasDeviceInterface, pulLength, ulFlags);
4266
4267 return CM_Get_Device_Interface_Alias_ExW(pszDeviceInterface,
4268 AliasInterfaceGuid, pszAliasDeviceInterface, pulLength,
4269 ulFlags, NULL);
4270}
CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExW(_In_ LPCWSTR pszDeviceInterface, _In_ LPGUID AliasInterfaceGuid, _Out_writes_(*pulLength) LPWSTR pszAliasDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4299

◆ CM_Get_Device_Interface_List_ExA()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_ExA ( _In_ LPGUID  InterfaceClassGuid,
_In_opt_ DEVINSTID_A  pDeviceID,
_Out_writes_(BufferLen) PCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4405 of file cfgmgr.c.

4412{
4413 DEVINSTID_W pDeviceIdW = NULL;
4414 PWCHAR BufferW = NULL;
4416
4417 TRACE("CM_Get_Device_Interface_List_ExA(%s %s %p %lu 0x%08lx %p)\n",
4419 Buffer, BufferLen, ulFlags, hMachine);
4420
4421 if (Buffer == NULL ||
4422 BufferLen == 0)
4423 return CR_INVALID_POINTER;
4424
4425 if (pDeviceID != NULL)
4426 {
4427 if (!pSetupCaptureAndConvertAnsiArg(pDeviceID, &pDeviceIdW))
4428 return CR_INVALID_DEVICE_ID;
4429 }
4430
4431 BufferW = MyMalloc(BufferLen * sizeof(WCHAR));
4432 if (BufferW == NULL)
4433 {
4435 goto Done;
4436 }
4437
4439 BufferW, BufferLen, ulFlags,
4440 hMachine);
4441 if (ret != CR_SUCCESS)
4442 goto Done;
4443
4445 0,
4446 BufferW,
4447 BufferLen,
4448 Buffer,
4449 BufferLen,
4450 NULL,
4451 NULL) == 0)
4452 ret = CR_FAILURE;
4453
4454Done:
4455 if (BufferW != NULL)
4456 MyFree(BufferW);
4457
4458 if (pDeviceIdW != NULL)
4459 MyFree(pDeviceIdW);
4460
4461 return ret;
4462}
CONFIGRET WINAPI CM_Get_Device_Interface_List_ExW(_In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_W pDeviceID, _Out_writes_(BufferLen) PWCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4470
#define debugstr_guid
Definition: kernel32.h:35
uint16_t * PWCHAR
Definition: typedefs.h:56
_In_ CONST GUID * InterfaceClassGuid
Definition: iofuncs.h:1136

Referenced by CM_Get_Device_Interface_ListA().

◆ CM_Get_Device_Interface_List_ExW()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_ExW ( _In_ LPGUID  InterfaceClassGuid,
_In_opt_ DEVINSTID_W  pDeviceID,
_Out_writes_(BufferLen) PWCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4470 of file cfgmgr.c.

4477{
4481
4482 TRACE("CM_Get_Device_Interface_List_ExW(%s %s %p %lu 0x%08lx %p)\n",
4484 Buffer, BufferLen, ulFlags, hMachine);
4485
4486 if (Buffer == NULL ||
4487 BufferLen == 0)
4488 return CR_INVALID_POINTER;
4489
4490 if (ulFlags & ~CM_GET_DEVICE_INTERFACE_LIST_BITS)
4491 return CR_INVALID_FLAG;
4492
4493 if (hMachine != NULL)
4494 {
4495 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4496 if (BindingHandle == NULL)
4497 return CR_FAILURE;
4498 }
4499 else
4500 {
4502 return CR_FAILURE;
4503 }
4504
4505 *Buffer = 0;
4506 BufferSize = BufferLen;
4507
4509 {
4512 pDeviceID,
4513 (LPBYTE)Buffer,
4514 &BufferSize,
4515 ulFlags);
4516 }
4518 {
4520 }
4522
4523 return ret;
4524}
DWORD WINAPI PNP_GetInterfaceDeviceList(handle_t hBinding, GUID *InterfaceGuid, LPWSTR pszDeviceID, BYTE *Buffer, PNP_RPC_BUFFER_SIZE *pulLength, DWORD ulFlags)
Definition: rpcserver.c:2649
#define CM_GET_DEVICE_INTERFACE_LIST_BITS
Definition: cfgmgr32.h:674
unsigned long PNP_RPC_BUFFER_SIZE
Definition: pnp.idl:34
unsigned char * LPBYTE
Definition: typedefs.h:53
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:254

Referenced by CM_Get_Device_Interface_List_ExA(), and CM_Get_Device_Interface_ListW().

◆ CM_Get_Device_Interface_List_Size_ExA()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExA ( _Out_ PULONG  pulLen,
_In_ LPGUID  InterfaceClassGuid,
_In_opt_ DEVINSTID_A  pDeviceID,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4570 of file cfgmgr.c.

4576{
4577 DEVINSTID_W pDeviceIdW = NULL;
4579
4580 TRACE("CM_Get_Device_Interface_List_Size_ExA(%p %p %s 0x%08lx %p)\n",
4581 pulLen, InterfaceClassGuid, debugstr_a(pDeviceID), ulFlags, hMachine);
4582
4583 if (pulLen == NULL)
4584 return CR_INVALID_POINTER;
4585
4586 if (pDeviceID != NULL)
4587 {
4588 if (!pSetupCaptureAndConvertAnsiArg(pDeviceID, &pDeviceIdW))
4589 return CR_INVALID_DEVICE_ID;
4590 }
4591
4592 *pulLen = 0;
4593
4595 pDeviceIdW, ulFlags, hMachine);
4596
4597 if (pDeviceIdW != NULL)
4598 MyFree(pDeviceIdW);
4599
4600 return ret;
4601}
CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExW(_Out_ PULONG pulLen, _In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_W pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4609

Referenced by CM_Get_Device_Interface_List_SizeA().

◆ CM_Get_Device_Interface_List_Size_ExW()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExW ( _Out_ PULONG  pulLen,
_In_ LPGUID  InterfaceClassGuid,
_In_opt_ DEVINSTID_W  pDeviceID,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4609 of file cfgmgr.c.

4615{
4618
4619 TRACE("CM_Get_Device_Interface_List_Size_ExW(%p %p %s 0x%08lx %p)\n",
4620 pulLen, InterfaceClassGuid, debugstr_w(pDeviceID), ulFlags, hMachine);
4621
4622 if (pulLen == NULL)
4623 return CR_INVALID_POINTER;
4624
4625 if (ulFlags & ~CM_GET_DEVICE_INTERFACE_LIST_BITS)
4626 return CR_INVALID_FLAG;
4627
4628 if (hMachine != NULL)
4629 {
4630 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4631 if (BindingHandle == NULL)
4632 return CR_FAILURE;
4633 }
4634 else
4635 {
4637 return CR_FAILURE;
4638 }
4639
4640 *pulLen = 0;
4641
4643 {
4645 pulLen,
4647 pDeviceID,
4648 ulFlags);
4649 }
4651 {
4653 }
4655
4656 return ret;
4657}
DWORD WINAPI PNP_GetInterfaceDeviceListSize(handle_t hBinding, PNP_RPC_BUFFER_SIZE *pulLen, GUID *InterfaceGuid, LPWSTR pszDeviceID, DWORD ulFlags)
Definition: rpcserver.c:2697

Referenced by CM_Get_Device_Interface_List_Size_ExA(), and CM_Get_Device_Interface_List_SizeW().

◆ CM_Get_Device_Interface_List_SizeA()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_SizeA ( _Out_ PULONG  pulLen,
_In_ LPGUID  InterfaceClassGuid,
_In_opt_ DEVINSTID_A  pDeviceID,
_In_ ULONG  ulFlags 
)

Definition at line 4532 of file cfgmgr.c.

4537{
4538 TRACE("CM_Get_Device_Interface_List_SizeA(%p %p %s 0x%08lx)\n",
4539 pulLen, InterfaceClassGuid, debugstr_a(pDeviceID), ulFlags);
4540
4542 pDeviceID, ulFlags, NULL);
4543}
CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExA(_Out_ PULONG pulLen, _In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_A pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4570

◆ CM_Get_Device_Interface_List_SizeW()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_SizeW ( _Out_ PULONG  pulLen,
_In_ LPGUID  InterfaceClassGuid,
_In_opt_ DEVINSTID_W  pDeviceID,
_In_ ULONG  ulFlags 
)

Definition at line 4551 of file cfgmgr.c.

4556{
4557 TRACE("CM_Get_Device_Interface_List_SizeW(%p %p %s 0x%08lx)\n",
4558 pulLen, InterfaceClassGuid, debugstr_w(pDeviceID), ulFlags);
4559
4561 pDeviceID, ulFlags, NULL);
4562}

◆ CM_Get_Device_Interface_ListA()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_ListA ( _In_ LPGUID  InterfaceClassGuid,
_In_opt_ DEVINSTID_A  pDeviceID,
_Out_writes_(BufferLen) PCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags 
)

Definition at line 4363 of file cfgmgr.c.

4369{
4370 TRACE("CM_Get_Device_Interface_ListA(%s %s %p %lu 0x%08lx)\n",
4372 Buffer, BufferLen, ulFlags);
4373
4375 Buffer, BufferLen, ulFlags, NULL);
4376}
CONFIGRET WINAPI CM_Get_Device_Interface_List_ExA(_In_ LPGUID InterfaceClassGuid, _In_opt_ DEVINSTID_A pDeviceID, _Out_writes_(BufferLen) PCHAR Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4405

◆ CM_Get_Device_Interface_ListW()

CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_ListW ( _In_ LPGUID  InterfaceClassGuid,
_In_opt_ DEVINSTID_W  pDeviceID,
_Out_writes_(BufferLen) PWCHAR  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags 
)

Definition at line 4384 of file cfgmgr.c.

4390{
4391 TRACE("CM_Get_Device_Interface_ListW(%s %s %p %lu 0x%08lx)\n",
4393 Buffer, BufferLen, ulFlags);
4394
4396 Buffer, BufferLen, ulFlags, NULL);
4397}

◆ CM_Get_DevNode_Custom_Property_ExA()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_Property_ExA ( _In_ DEVINST  dnDevInst,
_In_ PCSTR  pszCustomPropertyName,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 3276 of file cfgmgr.c.

3284{
3285 LPWSTR pszPropertyNameW;
3286 PVOID BufferW;
3287 ULONG ulLengthW;
3288 ULONG ulDataType = REG_NONE;
3289 CONFIGRET ret;
3290
3291 TRACE("CM_Get_DevNode_Custom_Property_ExA(%lx %s %p %p %p %lx %p)\n",
3292 dnDevInst, pszCustomPropertyName, pulRegDataType,
3293 Buffer, pulLength, ulFlags, hMachine);
3294
3295 if (!pulLength)
3296 return CR_INVALID_POINTER;
3297
3298 ulLengthW = *pulLength * sizeof(WCHAR);
3299 BufferW = HeapAlloc(GetProcessHeap(), 0, ulLengthW);
3300 if (!BufferW)
3301 return CR_OUT_OF_MEMORY;
3302
3303 pszPropertyNameW = pSetupMultiByteToUnicode(pszCustomPropertyName,
3304 CP_ACP);
3305 if (pszPropertyNameW == NULL)
3306 {
3307 HeapFree(GetProcessHeap(), 0, BufferW);
3308 return CR_OUT_OF_MEMORY;
3309 }
3310
3312 pszPropertyNameW,
3313 &ulDataType,
3314 BufferW,
3315 &ulLengthW,
3316 ulFlags,
3317 hMachine);
3318 if (ret == CR_SUCCESS)
3319 {
3320 if (ulDataType == REG_SZ ||
3321 ulDataType == REG_EXPAND_SZ ||
3322 ulDataType == REG_MULTI_SZ)
3323 {
3324 /* Do W->A conversion */
3325 *pulLength = WideCharToMultiByte(CP_ACP,
3326 0,
3327 BufferW,
3328 lstrlenW(BufferW) + 1,
3329 Buffer,
3330 *pulLength,
3331 NULL,
3332 NULL);
3333 if (*pulLength == 0)
3334 ret = CR_FAILURE;
3335 }
3336 else
3337 {
3338 /* Directly copy the value */
3339 if (ulLengthW <= *pulLength)
3340 memcpy(Buffer, BufferW, ulLengthW);
3341 else
3342 {
3343 *pulLength = ulLengthW;
3345 }
3346 }
3347 }
3348
3349 if (pulRegDataType)
3350 *pulRegDataType = ulDataType;
3351
3352 HeapFree(GetProcessHeap(), 0, BufferW);
3353 MyFree(pszPropertyNameW);
3354
3355 return ret;
3356}
CONFIGRET WINAPI CM_Get_DevNode_Custom_Property_ExW(_In_ DEVINST dnDevInst, _In_ PCWSTR pszCustomPropertyName, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:3364
LPWSTR WINAPI pSetupMultiByteToUnicode(LPCSTR lpMultiByteStr, UINT uCodePage)
Definition: misc.c:281
#define REG_SZ
Definition: layer.c:22
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define REG_MULTI_SZ
Definition: nt_native.h:1501
#define REG_NONE
Definition: nt_native.h:1492
#define REG_EXPAND_SZ
Definition: nt_native.h:1494

Referenced by CM_Get_DevNode_Custom_PropertyA().

◆ CM_Get_DevNode_Custom_Property_ExW()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_Property_ExW ( _In_ DEVINST  dnDevInst,
_In_ PCWSTR  pszCustomPropertyName,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 3364 of file cfgmgr.c.

3372{
3374 HSTRING_TABLE StringTable = NULL;
3375 LPWSTR lpDevInst;
3376 ULONG ulDataType = REG_NONE;
3377 ULONG ulTransferLength;
3379
3380 TRACE("CM_Get_DevNode_Custom_Property_ExW(%lx %s %p %p %p %lx %p)\n",
3381 dnDevInst, debugstr_w(pszCustomPropertyName), pulRegDataType,
3382 Buffer, pulLength, ulFlags, hMachine);
3383
3384 if (dnDevInst == 0)
3385 return CR_INVALID_DEVNODE;
3386
3387 if (pszCustomPropertyName == NULL ||
3388 pulLength == NULL ||
3389 *pulLength == 0)
3390 return CR_INVALID_POINTER;
3391
3392 if (ulFlags & ~CM_CUSTOMDEVPROP_BITS)
3393 return CR_INVALID_FLAG;
3394
3395 if (hMachine != NULL)
3396 {
3397 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
3398 if (BindingHandle == NULL)
3399 return CR_FAILURE;
3400
3401 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
3402 if (StringTable == 0)
3403 return CR_FAILURE;
3404 }
3405 else
3406 {
3407 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
3408 return CR_FAILURE;
3409 }
3410
3411 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
3412 if (lpDevInst == NULL)
3413 return CR_INVALID_DEVNODE;
3414
3415 ulTransferLength = *pulLength;
3416
3418 {
3420 lpDevInst,
3421 (LPWSTR)pszCustomPropertyName,
3422 &ulDataType,
3423 Buffer,
3424 &ulTransferLength,
3425 pulLength,
3426 ulFlags);
3427 }
3429 {
3431 }
3433
3434 if (ret == CR_SUCCESS)
3435 {
3436 if (pulRegDataType != NULL)
3437 *pulRegDataType = ulDataType;
3438 }
3439
3440 return ret;
3441}
DWORD WINAPI PNP_GetCustomDevProp(handle_t hBinding, LPWSTR pDeviceID, LPWSTR CustomPropName, DWORD *pulRegDataType, BYTE *Buffer, PNP_RPC_STRING_LEN *pulTransferLen, PNP_RPC_STRING_LEN *pulLength, DWORD ulFlags)
Definition: rpcserver.c:5188
#define CM_CUSTOMDEVPROP_BITS
Definition: cfgmgr32.h:836

Referenced by CM_Get_DevNode_Custom_Property_ExA(), and CM_Get_DevNode_Custom_PropertyW().

◆ CM_Get_DevNode_Custom_PropertyA()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_PropertyA ( _In_ DEVINST  dnDevInst,
_In_ PCSTR  pszCustomPropertyName,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 3230 of file cfgmgr.c.

3237{
3238 TRACE("CM_Get_DevNode_Custom_PropertyA(%lx %s %p %p %p %lx)\n",
3239 dnDevInst, pszCustomPropertyName, pulRegDataType,
3240 Buffer, pulLength, ulFlags);
3241
3242 return CM_Get_DevNode_Custom_Property_ExA(dnDevInst, pszCustomPropertyName,
3243 pulRegDataType, Buffer,
3244 pulLength, ulFlags, NULL);
3245}
CONFIGRET WINAPI CM_Get_DevNode_Custom_Property_ExA(_In_ DEVINST dnDevInst, _In_ PCSTR pszCustomPropertyName, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:3276

◆ CM_Get_DevNode_Custom_PropertyW()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_PropertyW ( _In_ DEVINST  dnDevInst,
_In_ PCWSTR  pszCustomPropertyName,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 3253 of file cfgmgr.c.

3260{
3261 TRACE("CM_Get_DevNode_Custom_PropertyW(%lx %s %p %p %p %lx)\n",
3262 dnDevInst, debugstr_w(pszCustomPropertyName), pulRegDataType,
3263 Buffer, pulLength, ulFlags);
3264
3265 return CM_Get_DevNode_Custom_Property_ExW(dnDevInst, pszCustomPropertyName,
3266 pulRegDataType, Buffer,
3267 pulLength, ulFlags, NULL);
3268}

◆ CM_Get_DevNode_Registry_Property_ExA()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExA ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProperty,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 3493 of file cfgmgr.c.

3501{
3502 PVOID BufferW;
3503 ULONG LengthW;
3504 ULONG ulDataType = REG_NONE;
3505 CONFIGRET ret;
3506
3507 TRACE("CM_Get_DevNode_Registry_Property_ExA(%lx %lu %p %p %p %lx %p)\n",
3508 dnDevInst, ulProperty, pulRegDataType, Buffer, pulLength,
3509 ulFlags, hMachine);
3510
3511 if (!pulLength)
3512 return CR_INVALID_POINTER;
3513
3514 LengthW = *pulLength * sizeof(WCHAR);
3515 BufferW = HeapAlloc(GetProcessHeap(), 0, LengthW);
3516 if (!BufferW)
3517 return CR_OUT_OF_MEMORY;
3518
3520 ulProperty,
3521 &ulDataType,
3522 BufferW,
3523 &LengthW,
3524 ulFlags,
3525 hMachine);
3526
3527 if (ret == CR_SUCCESS)
3528 {
3529 if (ulDataType == REG_SZ ||
3530 ulDataType == REG_EXPAND_SZ ||
3531 ulDataType == REG_MULTI_SZ)
3532 {
3533 /* Do W->A conversion */
3534 *pulLength = WideCharToMultiByte(CP_ACP,
3535 0,
3536 BufferW,
3537 lstrlenW(BufferW) + 1,
3538 Buffer,
3539 *pulLength,
3540 NULL,
3541 NULL);
3542 if (*pulLength == 0)
3543 ret = CR_FAILURE;
3544 }
3545 else
3546 {
3547 /* Directly copy the value */
3548 if (LengthW <= *pulLength)
3549 memcpy(Buffer, BufferW, LengthW);
3550 else
3551 {
3552 *pulLength = LengthW;
3554 }
3555 }
3556 }
3557
3558 if (pulRegDataType)
3559 *pulRegDataType = ulDataType;
3560
3561 HeapFree(GetProcessHeap(), 0, BufferW);
3562
3563 return ret;
3564}
CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExW(_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:3572

Referenced by CM_Get_DevNode_Registry_PropertyA().

◆ CM_Get_DevNode_Registry_Property_ExW()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExW ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProperty,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 3572 of file cfgmgr.c.

3580{
3582 HSTRING_TABLE StringTable = NULL;
3584 LPWSTR lpDevInst;
3585 ULONG ulDataType = REG_NONE;
3586 ULONG ulTransferLength = 0;
3587
3588 TRACE("CM_Get_DevNode_Registry_Property_ExW(%lx %lu %p %p %p %lx %p)\n",
3589 dnDevInst, ulProperty, pulRegDataType, Buffer, pulLength,
3590 ulFlags, hMachine);
3591
3592 if (dnDevInst == 0)
3593 return CR_INVALID_DEVNODE;
3594
3595 if (ulProperty < CM_DRP_MIN || ulProperty > CM_DRP_MAX)
3596 return CR_INVALID_PROPERTY;
3597
3598 /* pulRegDataType is optional */
3599
3600 /* Buffer is optional */
3601
3602 if (pulLength == NULL)
3603 return CR_INVALID_POINTER;
3604
3605 if (*pulLength == 0)
3606 return CR_INVALID_POINTER;
3607
3608 if (ulFlags != 0)
3609 return CR_INVALID_FLAG;
3610
3611 if (hMachine != NULL)
3612 {
3613 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
3614 if (BindingHandle == NULL)
3615 return CR_FAILURE;
3616
3617 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
3618 if (StringTable == 0)
3619 return CR_FAILURE;
3620 }
3621 else
3622 {
3623 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
3624 return CR_FAILURE;
3625 }
3626
3627 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
3628 if (lpDevInst == NULL)
3629 return CR_INVALID_DEVNODE;
3630
3631 ulTransferLength = *pulLength;
3632
3634 {
3636 lpDevInst,
3637 ulProperty,
3638 &ulDataType,
3639 Buffer,
3640 &ulTransferLength,
3641 pulLength,
3642 ulFlags);
3643 }
3645 {
3647 }
3649
3650 if (ret == CR_SUCCESS)
3651 {
3652 if (pulRegDataType != NULL)
3653 *pulRegDataType = ulDataType;
3654 }
3655
3656 return ret;
3657}
DWORD WINAPI PNP_GetDeviceRegProp(handle_t hBinding, LPWSTR pDeviceID, DWORD ulProperty, DWORD *pulRegDataType, BYTE *Buffer, PNP_PROP_SIZE *pulTransferLen, PNP_PROP_SIZE *pulLength, DWORD ulFlags)
Definition: rpcserver.c:1883
#define CR_INVALID_PROPERTY
Definition: cfgmgr32.h:899
#define CM_DRP_MAX
Definition: cfgmgr32.h:732

Referenced by CM_Get_DevNode_Registry_Property_ExA(), CM_Get_DevNode_Registry_PropertyW(), DisplayDevNodeEnumerator(), SETUP_CreateDevicesList(), and SetupDiGetDeviceRegistryPropertyW().

◆ CM_Get_DevNode_Registry_PropertyA()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyA ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProperty,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 3449 of file cfgmgr.c.

3456{
3457 TRACE("CM_Get_DevNode_Registry_PropertyA(%lx %lu %p %p %p %lx)\n",
3458 dnDevInst, ulProperty, pulRegDataType, Buffer, pulLength, ulFlags);
3459
3460 return CM_Get_DevNode_Registry_Property_ExA(dnDevInst, ulProperty,
3461 pulRegDataType, Buffer,
3462 pulLength, ulFlags, NULL);
3463}
CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExA(_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _Out_opt_ PULONG pulRegDataType, _Out_writes_bytes_opt_(*pulLength) PVOID Buffer, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:3493

◆ CM_Get_DevNode_Registry_PropertyW()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyW ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProperty,
_Out_opt_ PULONG  pulRegDataType,
_Out_writes_bytes_opt_ *pulLength PVOID  Buffer,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 3471 of file cfgmgr.c.

3478{
3479 TRACE("CM_Get_DevNode_Registry_PropertyW(%lx %lu %p %p %p %lx)\n",
3480 dnDevInst, ulProperty, pulRegDataType, Buffer, pulLength, ulFlags);
3481
3482 return CM_Get_DevNode_Registry_Property_ExW(dnDevInst, ulProperty,
3483 pulRegDataType, Buffer,
3484 pulLength, ulFlags, NULL);
3485}

Referenced by GetDeviceDisplayInfo(), and CDeviceNode::SetupNode().

◆ CM_Get_DevNode_Status()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Status ( _Out_ PULONG  pulStatus,
_Out_ PULONG  pulProblemNumber,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 3665 of file cfgmgr.c.

3670{
3671 TRACE("CM_Get_DevNode_Status(%p %p %lx %lx)\n",
3672 pulStatus, pulProblemNumber, dnDevInst, ulFlags);
3673
3674 return CM_Get_DevNode_Status_Ex(pulStatus, pulProblemNumber, dnDevInst,
3675 ulFlags, NULL);
3676}
CONFIGRET WINAPI CM_Get_DevNode_Status_Ex(_Out_ PULONG pulStatus, _Out_ PULONG pulProblemNumber, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:3684

Referenced by EnumHotpluggedDevices(), and StorageCoInstaller().

◆ CM_Get_DevNode_Status_Ex()

CMAPI CONFIGRET WINAPI CM_Get_DevNode_Status_Ex ( _Out_ PULONG  pulStatus,
_Out_ PULONG  pulProblemNumber,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 3684 of file cfgmgr.c.

3690{
3692 HSTRING_TABLE StringTable = NULL;
3693 LPWSTR lpDevInst;
3694 CONFIGRET ret;
3695
3696 TRACE("CM_Get_DevNode_Status_Ex(%p %p %lx %lx %p)\n",
3697 pulStatus, pulProblemNumber, dnDevInst, ulFlags, hMachine);
3698
3699 if (pulStatus == NULL || pulProblemNumber == NULL)
3700 return CR_INVALID_POINTER;
3701
3702 if (dnDevInst == 0)
3703 return CR_INVALID_DEVINST;
3704
3705 if (ulFlags != 0)
3706 return CR_INVALID_FLAG;
3707
3708 if (hMachine != NULL)
3709 {
3710 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
3711 if (BindingHandle == NULL)
3712 return CR_FAILURE;
3713
3714 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
3715 if (StringTable == 0)
3716 return CR_FAILURE;
3717 }
3718 else
3719 {
3720 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
3721 return CR_FAILURE;
3722 }
3723
3724 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
3725 if (lpDevInst == NULL)
3726 return CR_INVALID_DEVNODE;
3727
3729 {
3731 lpDevInst,
3732 pulStatus,
3733 pulProblemNumber,
3734 ulFlags);
3735 }
3737 {
3739 }
3741
3742 return ret;
3743}
DWORD WINAPI PNP_GetDeviceStatus(handle_t hBinding, LPWSTR pDeviceID, DWORD *pulStatus, DWORD *pulProblem, DWORD ulFlags)
Definition: rpcserver.c:3459

Referenced by CDeviceNode::CanDisable(), CanDisableDevice(), CDeviceNode::CanUninstall(), CM_Get_DevNode_Status(), DisplayDevNodeFlags(), GetDeviceStatusString(), CDeviceNode::HasProblem(), InitProbeListPage(), IsDeviceHidden(), IsDeviceStarted(), CDeviceNode::IsDisabled(), IsDriverInstalled(), CDeviceNode::IsHidden(), CDeviceNode::IsInstalled(), CDeviceNode::IsStarted(), ShowDeviceProblemWizard(), UpdateDevInfo(), and UpdateDriverDlg().

◆ CM_Get_First_Log_Conf()

CMAPI CONFIGRET WINAPI CM_Get_First_Log_Conf ( _Out_opt_ PLOG_CONF  plcLogConf,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 4665 of file cfgmgr.c.

4669{
4670 TRACE("CM_Get_First_Log_Conf(%p %lx %lx)\n",
4671 plcLogConf, dnDevInst, ulFlags);
4672
4673 return CM_Get_First_Log_Conf_Ex(plcLogConf, dnDevInst, ulFlags, NULL);
4674}
CONFIGRET WINAPI CM_Get_First_Log_Conf_Ex(_Out_opt_ PLOG_CONF plcLogConf, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4682

◆ CM_Get_First_Log_Conf_Ex()

CMAPI CONFIGRET WINAPI CM_Get_First_Log_Conf_Ex ( _Out_opt_ PLOG_CONF  plcLogConf,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4682 of file cfgmgr.c.

4687{
4689 HSTRING_TABLE StringTable = NULL;
4690 LPWSTR lpDevInst = NULL;
4692 ULONG ulTag;
4693 PLOG_CONF_INFO pLogConfInfo;
4694
4695 FIXME("CM_Get_First_Log_Conf_Ex(%p %lx %lx %p)\n",
4696 plcLogConf, dnDevInst, ulFlags, hMachine);
4697
4698 if (dnDevInst == 0)
4699 return CR_INVALID_DEVINST;
4700
4701 if (ulFlags & ~LOG_CONF_BITS)
4702 return CR_INVALID_FLAG;
4703
4704 if (plcLogConf)
4705 *plcLogConf = 0;
4706
4707 if (hMachine != NULL)
4708 {
4709 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4710 if (BindingHandle == NULL)
4711 return CR_FAILURE;
4712
4713 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
4714 if (StringTable == 0)
4715 return CR_FAILURE;
4716 }
4717 else
4718 {
4719 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
4720 return CR_FAILURE;
4721 }
4722
4723 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
4724 if (lpDevInst == NULL)
4725 return CR_INVALID_DEVNODE;
4726
4728 {
4730 lpDevInst,
4731 ulFlags,
4732 &ulTag,
4733 ulFlags);
4734 }
4736 {
4738 }
4740
4741 if (ret != CR_SUCCESS)
4742 return ret;
4743
4744 if (plcLogConf)
4745 {
4746 pLogConfInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_CONF_INFO));
4747 if (pLogConfInfo == NULL)
4748 return CR_OUT_OF_MEMORY;
4749
4750 pLogConfInfo->ulMagic = LOG_CONF_MAGIC;
4751 pLogConfInfo->dnDevInst = dnDevInst;
4752 pLogConfInfo->ulType = ulFlags;
4753 pLogConfInfo->ulTag = ulTag;
4754
4755 *plcLogConf = (LOG_CONF)pLogConfInfo;
4756 }
4757
4758 return CR_SUCCESS;
4759}
DWORD WINAPI PNP_GetFirstLogConf(handle_t hBinding, LPWSTR pDeviceID, DWORD ulLogConfType, DWORD *pulLogConfTag, DWORD ulFlags)
Definition: rpcserver.c:4488
_In_ ULONG _In_ ULONG ulTag
Definition: winddi.h:3942

Referenced by CM_Get_First_Log_Conf().

◆ CM_Get_Global_State()

CMAPI CONFIGRET WINAPI CM_Get_Global_State ( _Out_ PULONG  pulState,
_In_ ULONG  ulFlags 
)

Definition at line 4767 of file cfgmgr.c.

4770{
4771 TRACE("CM_Get_Global_State(%p %lx)\n",
4772 pulState, ulFlags);
4773
4774 return CM_Get_Global_State_Ex(pulState, ulFlags, NULL);
4775}
CONFIGRET WINAPI CM_Get_Global_State_Ex(_Out_ PULONG pulState, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4783

◆ CM_Get_Global_State_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Global_State_Ex ( _Out_ PULONG  pulState,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4783 of file cfgmgr.c.

4787{
4789 CONFIGRET ret;
4790
4791 TRACE("CM_Get_Global_State_Ex(%p %lx %p)\n",
4792 pulState, ulFlags, hMachine);
4793
4794 if (pulState == NULL)
4795 return CR_INVALID_POINTER;
4796
4797 if (ulFlags != 0)
4798 return CR_INVALID_FLAG;
4799
4800 if (hMachine != NULL)
4801 {
4802 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4803 if (BindingHandle == NULL)
4804 return CR_FAILURE;
4805 }
4806 else
4807 {
4809 return CR_FAILURE;
4810 }
4811
4813 {
4814 ret = PNP_GetGlobalState(BindingHandle, pulState, ulFlags);
4815 }
4817 {
4819 }
4821
4822 return ret;
4823}
DWORD WINAPI PNP_GetGlobalState(handle_t hBinding, DWORD *pulState, DWORD ulFlags)
Definition: rpcserver.c:720

Referenced by CM_Get_Global_State().

◆ CM_Get_Hardware_Profile_Info_ExA()

CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_Info_ExA ( _In_ ULONG  ulIndex,
_Out_ PHWPROFILEINFO_A  pHWProfileInfo,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4992 of file cfgmgr.c.

4997{
4998 HWPROFILEINFO_W LocalProfileInfo;
4999 CONFIGRET ret;
5000
5001 TRACE("CM_Get_Hardware_Profile_Info_ExA(%lu %p %lx %p)\n",
5002 ulIndex, pHWProfileInfo, ulFlags, hMachine);
5003
5004 if (pHWProfileInfo == NULL)
5005 return CR_INVALID_POINTER;
5006
5007 ret = CM_Get_Hardware_Profile_Info_ExW(ulIndex, &LocalProfileInfo,
5008 ulFlags, hMachine);
5009 if (ret == CR_SUCCESS)
5010 {
5011 pHWProfileInfo->HWPI_ulHWProfile = LocalProfileInfo.HWPI_ulHWProfile;
5012 pHWProfileInfo->HWPI_dwFlags = LocalProfileInfo.HWPI_dwFlags;
5013
5015 0,
5016 LocalProfileInfo.HWPI_szFriendlyName,
5017 lstrlenW(LocalProfileInfo.HWPI_szFriendlyName) + 1,
5018 pHWProfileInfo->HWPI_szFriendlyName,
5020 NULL,
5021 NULL) == 0)
5022 ret = CR_FAILURE;
5023 }
5024
5025 return ret;
5026}
#define MAX_PROFILE_LEN
Definition: cfgmgr32.h:54
CONFIGRET WINAPI CM_Get_Hardware_Profile_Info_ExW(_In_ ULONG ulIndex, _Out_ PHWPROFILEINFO_W pHWProfileInfo, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5034
ULONG HWPI_ulHWProfile
Definition: cfgmgr32.h:560
DWORD HWPI_dwFlags
Definition: cfgmgr32.h:562
WCHAR HWPI_szFriendlyName[MAX_PROFILE_LEN]
Definition: cfgmgr32.h:561

Referenced by CM_Get_Hardware_Profile_InfoA().

◆ CM_Get_Hardware_Profile_Info_ExW()

CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_Info_ExW ( _In_ ULONG  ulIndex,
_Out_ PHWPROFILEINFO_W  pHWProfileInfo,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5034 of file cfgmgr.c.

5039{
5041 CONFIGRET ret;
5042
5043 TRACE("CM_Get_Hardware_Profile_Info_ExW(%lu %p %lx %p)\n",
5044 ulIndex, pHWProfileInfo, ulFlags, hMachine);
5045
5046 if (pHWProfileInfo == NULL)
5047 return CR_INVALID_POINTER;
5048
5049 if (ulFlags != 0)
5050 return CR_INVALID_FLAG;
5051
5052 if (hMachine != NULL)
5053 {
5054 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5055 if (BindingHandle == NULL)
5056 return CR_FAILURE;
5057 }
5058 else
5059 {
5061 return CR_FAILURE;
5062 }
5063
5065 {
5066 ret = PNP_GetHwProfInfo(BindingHandle, ulIndex, pHWProfileInfo,
5067 sizeof(HWPROFILEINFO_W), 0);
5068 }
5070 {
5072 }
5074
5075 return ret;
5076}
DWORD WINAPI PNP_GetHwProfInfo(handle_t hBinding, DWORD ulIndex, HWPROFILEINFO *pHWProfileInfo, DWORD ulProfileInfoSize, DWORD ulFlags)
Definition: rpcserver.c:4074

Referenced by CM_Get_Hardware_Profile_Info_ExA(), and CM_Get_Hardware_Profile_InfoW().

◆ CM_Get_Hardware_Profile_InfoA()

CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_InfoA ( _In_ ULONG  ulIndex,
_Out_ PHWPROFILEINFO_A  pHWProfileInfo,
_In_ ULONG  ulFlags 
)

Definition at line 4956 of file cfgmgr.c.

4960{
4961 TRACE("CM_Get_Hardware_Profile_InfoA(%lu %p %lx)\n",
4962 ulIndex, pHWProfileInfo, ulFlags);
4963
4964 return CM_Get_Hardware_Profile_Info_ExA(ulIndex, pHWProfileInfo,
4965 ulFlags, NULL);
4966}
CONFIGRET WINAPI CM_Get_Hardware_Profile_Info_ExA(_In_ ULONG ulIndex, _Out_ PHWPROFILEINFO_A pHWProfileInfo, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4992

◆ CM_Get_Hardware_Profile_InfoW()

CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_InfoW ( _In_ ULONG  ulIndex,
_Out_ PHWPROFILEINFO_W  pHWProfileInfo,
_In_ ULONG  ulFlags 
)

Definition at line 4974 of file cfgmgr.c.

4978{
4979 TRACE("CM_Get_Hardware_Profile_InfoW(%lu %p %lx)\n",
4980 ulIndex, pHWProfileInfo, ulFlags);
4981
4982 return CM_Get_Hardware_Profile_Info_ExW(ulIndex, pHWProfileInfo,
4983 ulFlags, NULL);
4984}

◆ CM_Get_HW_Prof_Flags_ExA()

CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExA ( _In_ DEVINSTID_A  szDevInstName,
_In_ ULONG  ulHardwareProfile,
_Out_ PULONG  pulValue,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4869 of file cfgmgr.c.

4875{
4876 DEVINSTID_W pszDevIdW = NULL;
4878
4879 TRACE("CM_Get_HW_Prof_Flags_ExA(%s %lu %p %lx %p)\n",
4880 debugstr_a(szDevInstName), ulHardwareProfile, pulValue, ulFlags, hMachine);
4881
4882 if (szDevInstName != NULL)
4883 {
4884 if (pSetupCaptureAndConvertAnsiArg(szDevInstName, &pszDevIdW))
4885 return CR_INVALID_DEVICE_ID;
4886 }
4887
4888 ret = CM_Get_HW_Prof_Flags_ExW(pszDevIdW, ulHardwareProfile,
4889 pulValue, ulFlags, hMachine);
4890
4891 if (pszDevIdW != NULL)
4892 MyFree(pszDevIdW);
4893
4894 return ret;
4895}
CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExW(_In_ DEVINSTID_W szDevInstName, _In_ ULONG ulHardwareProfile, _Out_ PULONG pulValue, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4903

Referenced by CM_Get_HW_Prof_FlagsA().

◆ CM_Get_HW_Prof_Flags_ExW()

CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExW ( _In_ DEVINSTID_W  szDevInstName,
_In_ ULONG  ulHardwareProfile,
_Out_ PULONG  pulValue,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 4903 of file cfgmgr.c.

4909{
4911 CONFIGRET ret;
4912
4913 FIXME("CM_Get_HW_Prof_Flags_ExW(%s %lu %p %lx %p)\n",
4914 debugstr_w(szDevInstName), ulHardwareProfile, pulValue, ulFlags, hMachine);
4915
4916 if ((szDevInstName == NULL) || (pulValue == NULL))
4917 return CR_INVALID_POINTER;
4918
4919 if (ulFlags != 0)
4920 return CR_INVALID_FLAG;
4921
4922 /* FIXME: Check whether szDevInstName is valid */
4923
4924 if (hMachine != NULL)
4925 {
4926 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4927 if (BindingHandle == NULL)
4928 return CR_FAILURE;
4929 }
4930 else
4931 {
4933 return CR_FAILURE;
4934 }
4935
4937 {
4938 ret = PNP_HwProfFlags(BindingHandle, PNP_GET_HWPROFFLAGS, szDevInstName,
4939 ulHardwareProfile, pulValue, NULL, NULL, 0, 0);
4940 }
4942 {
4944 }
4946
4947 return ret;
4948}
DWORD WINAPI PNP_HwProfFlags(handle_t hBinding, DWORD ulAction, LPWSTR pDeviceID, DWORD ulConfig, DWORD *pulValue, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, DWORD ulNameLength, DWORD ulFlags)
Definition: rpcserver.c:3990

Referenced by CM_Get_HW_Prof_Flags_ExA(), and CM_Get_HW_Prof_FlagsW().

◆ CM_Get_HW_Prof_FlagsA()

CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_FlagsA ( _In_ DEVINSTID_A  szDevInstName,
_In_ ULONG  ulHardwareProfile,
_Out_ PULONG  pulValue,
_In_ ULONG  ulFlags 
)

Definition at line 4831 of file cfgmgr.c.

4836{
4837 TRACE("CM_Get_HW_Prof_FlagsA(%s %lu %p %lx)\n",
4838 debugstr_a(szDevInstName), ulHardwareProfile, pulValue, ulFlags);
4839
4840 return CM_Get_HW_Prof_Flags_ExA(szDevInstName, ulHardwareProfile,
4841 pulValue, ulFlags, NULL);
4842}
CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExA(_In_ DEVINSTID_A szDevInstName, _In_ ULONG ulHardwareProfile, _Out_ PULONG pulValue, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4869

◆ CM_Get_HW_Prof_FlagsW()

CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_FlagsW ( _In_ DEVINSTID_W  szDevInstName,
_In_ ULONG  ulHardwareProfile,
_Out_ PULONG  pulValue,
_In_ ULONG  ulFlags 
)

Definition at line 4850 of file cfgmgr.c.

4855{
4856 TRACE("CM_Get_HW_Prof_FlagsW(%s %lu %p %lx)\n",
4857 debugstr_w(szDevInstName), ulHardwareProfile, pulValue, ulFlags);
4858
4859 return CM_Get_HW_Prof_Flags_ExW(szDevInstName, ulHardwareProfile,
4860 pulValue, ulFlags, NULL);
4861}

◆ CM_Get_Log_Conf_Priority()

CMAPI CONFIGRET WINAPI CM_Get_Log_Conf_Priority ( _In_ LOG_CONF  lcLogConf,
_Out_ PPRIORITY  pPriority,
_In_ ULONG  ulFlags 
)

Definition at line 5084 of file cfgmgr.c.

5088{
5089 TRACE("CM_Get_Log_Conf_Priority(%p %p %lx)\n",
5090 lcLogConf, pPriority, ulFlags);
5091
5092 return CM_Get_Log_Conf_Priority_Ex(lcLogConf, pPriority, ulFlags, NULL);
5093}
CONFIGRET WINAPI CM_Get_Log_Conf_Priority_Ex(_In_ LOG_CONF lcLogConf, _Out_ PPRIORITY pPriority, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5101

◆ CM_Get_Log_Conf_Priority_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Log_Conf_Priority_Ex ( _In_ LOG_CONF  lcLogConf,
_Out_ PPRIORITY  pPriority,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5101 of file cfgmgr.c.

5106{
5108 HSTRING_TABLE StringTable = NULL;
5109 PLOG_CONF_INFO pLogConfInfo;
5110 LPWSTR lpDevInst;
5111 CONFIGRET ret;
5112
5113 FIXME("CM_Get_Log_Conf_Priority_Ex(%p %p %lx %p)\n",
5114 lcLogConf, pPriority, ulFlags, hMachine);
5115
5116 pLogConfInfo = (PLOG_CONF_INFO)lcLogConf;
5117 if (!IsValidLogConf(pLogConfInfo))
5118 return CR_INVALID_LOG_CONF;
5119
5120 if (pPriority == NULL)
5121 return CR_INVALID_POINTER;
5122
5123 if (ulFlags != 0)
5124 return CR_INVALID_FLAG;
5125
5126 if (hMachine != NULL)
5127 {
5128 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5129 if (BindingHandle == NULL)
5130 return CR_FAILURE;
5131
5132 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5133 if (StringTable == 0)
5134 return CR_FAILURE;
5135 }
5136 else
5137 {
5138 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5139 return CR_FAILURE;
5140 }
5141
5142 lpDevInst = pSetupStringTableStringFromId(StringTable, pLogConfInfo->dnDevInst);
5143 if (lpDevInst == NULL)
5144 return CR_INVALID_DEVNODE;
5145
5147 {
5149 lpDevInst,
5150 pLogConfInfo->ulType,
5151 pLogConfInfo->ulTag,
5152 pPriority,
5153 0);
5154 }
5156 {
5158 }
5160
5161 return ret;
5162}
DWORD WINAPI PNP_GetLogConfPriority(handle_t hBinding, LPWSTR pDeviceID, DWORD ulType, DWORD ulTag, DWORD *pPriority, DWORD ulFlags)
Definition: rpcserver.c:4708

Referenced by CM_Get_Log_Conf_Priority().

◆ CM_Get_Next_Log_Conf()

CMAPI CONFIGRET WINAPI CM_Get_Next_Log_Conf ( _Out_opt_ PLOG_CONF  plcLogConf,
_In_ LOG_CONF  lcLogConf,
_In_ ULONG  ulFlags 
)

Definition at line 5170 of file cfgmgr.c.

5174{
5175 TRACE("CM_Get_Next_Log_Conf(%p %p %lx)\n",
5176 plcLogConf, lcLogConf, ulFlags);
5177
5178 return CM_Get_Next_Log_Conf_Ex(plcLogConf, lcLogConf, ulFlags, NULL);
5179}
CONFIGRET WINAPI CM_Get_Next_Log_Conf_Ex(_Out_opt_ PLOG_CONF plcLogConf, _In_ LOG_CONF lcLogConf, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5187

◆ CM_Get_Next_Log_Conf_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Next_Log_Conf_Ex ( _Out_opt_ PLOG_CONF  plcLogConf,
_In_ LOG_CONF  lcLogConf,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5187 of file cfgmgr.c.

5192{
5194 HSTRING_TABLE StringTable = NULL;
5195 PLOG_CONF_INFO pLogConfInfo;
5196 PLOG_CONF_INFO pNewLogConfInfo;
5197 ULONG ulNewTag;
5198 LPWSTR lpDevInst;
5199 CONFIGRET ret;
5200
5201 FIXME("CM_Get_Next_Log_Conf_Ex(%p %p %lx %p)\n",
5202 plcLogConf, lcLogConf, ulFlags, hMachine);
5203
5204 if (plcLogConf)
5205 *plcLogConf = 0;
5206
5207 pLogConfInfo = (PLOG_CONF_INFO)lcLogConf;
5208 if (!IsValidLogConf(pLogConfInfo))
5209 return CR_INVALID_LOG_CONF;
5210
5211 if (ulFlags != 0)
5212 return CR_INVALID_FLAG;
5213
5214 if (hMachine != NULL)
5215 {
5216 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5217 if (BindingHandle == NULL)
5218 return CR_FAILURE;
5219
5220 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5221 if (StringTable == 0)
5222 return CR_FAILURE;
5223 }
5224 else
5225 {
5226 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5227 return CR_FAILURE;
5228 }
5229
5230 lpDevInst = pSetupStringTableStringFromId(StringTable, pLogConfInfo->dnDevInst);
5231 if (lpDevInst == NULL)
5232 return CR_INVALID_DEVNODE;
5233
5235 {
5237 lpDevInst,
5238 pLogConfInfo->ulType,
5239 pLogConfInfo->ulTag,
5240 &ulNewTag,
5241 0);
5242 }
5244 {
5246 }
5248
5249 if (ret != CR_SUCCESS)
5250 return ret;
5251
5252 if (plcLogConf)
5253 {
5254 pNewLogConfInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_CONF_INFO));
5255 if (pNewLogConfInfo == NULL)
5256 return CR_OUT_OF_MEMORY;
5257
5258 pNewLogConfInfo->ulMagic = LOG_CONF_MAGIC;
5259 pNewLogConfInfo->dnDevInst = pLogConfInfo->dnDevInst;
5260 pNewLogConfInfo->ulType = pLogConfInfo->ulType;
5261 pNewLogConfInfo->ulTag = ulNewTag;
5262
5263 *plcLogConf = (LOG_CONF)pNewLogConfInfo;
5264 }
5265
5266 return CR_SUCCESS;
5267}
DWORD WINAPI PNP_GetNextLogConf(handle_t hBinding, LPWSTR pDeviceID, DWORD ulLogConfType, DWORD ulCurrentTag, DWORD *pulNextTag, DWORD ulFlags)
Definition: rpcserver.c:4589

Referenced by CM_Get_Next_Log_Conf().

◆ CM_Get_Next_Res_Des()

CMAPI CONFIGRET WINAPI CM_Get_Next_Res_Des ( _Out_ PRES_DES  prdResDes,
_In_ RES_DES  rdResDes,
_In_ RESOURCEID  ForResource,
_Out_opt_ PRESOURCEID  pResourceID,
_In_ ULONG  ulFlags 
)

Definition at line 5275 of file cfgmgr.c.

5281{
5282 TRACE("CM_Get_Next_Res_Des(%p %p %lu %p %lx)\n",
5283 prdResDes, rdResDes, ForResource, pResourceID, ulFlags);
5284
5285 return CM_Get_Next_Res_Des_Ex(prdResDes, rdResDes, ForResource,
5286 pResourceID, ulFlags, NULL);
5287}
CONFIGRET WINAPI CM_Get_Next_Res_Des_Ex(_Out_ PRES_DES prdResDes, _In_ RES_DES rdResDes, _In_ RESOURCEID ForResource, _Out_opt_ PRESOURCEID pResourceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5295

◆ CM_Get_Next_Res_Des_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Next_Res_Des_Ex ( _Out_ PRES_DES  prdResDes,
_In_ RES_DES  rdResDes,
_In_ RESOURCEID  ForResource,
_Out_opt_ PRESOURCEID  pResourceID,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5295 of file cfgmgr.c.

5302{
5304 HSTRING_TABLE StringTable = NULL;
5305 PRES_DES_INFO pNewResDesInfo = NULL;
5306 ULONG ulLogConfTag, ulLogConfType, ulResDesTag;
5307 ULONG ulNextResDesType = 0, ulNextResDesTag = 0;
5308 LPWSTR lpDevInst;
5309 DEVINST dnDevInst;
5310 CONFIGRET ret;
5311
5312 FIXME("CM_Get_Next_Res_Des_Ex(%p %p %lu %p %lx %p)\n",
5313 prdResDes, rdResDes, ForResource, pResourceID, ulFlags, hMachine);
5314
5315 if (prdResDes == NULL)
5316 return CR_INVALID_POINTER;
5317
5318 if (IsValidLogConf((PLOG_CONF_INFO)rdResDes))
5319 {
5320 FIXME("LogConf found!\n");
5321 dnDevInst = ((PLOG_CONF_INFO)rdResDes)->dnDevInst;
5322 ulLogConfTag = ((PLOG_CONF_INFO)rdResDes)->ulTag;
5323 ulLogConfType = ((PLOG_CONF_INFO)rdResDes)->ulType;
5324 ulResDesTag = (ULONG)-1;
5325 }
5326 else if (IsValidResDes((PRES_DES_INFO)rdResDes))
5327 {
5328 FIXME("ResDes found!\n");
5329 dnDevInst = ((PRES_DES_INFO)rdResDes)->dnDevInst;
5330 ulLogConfTag = ((PRES_DES_INFO)rdResDes)->ulLogConfTag;
5331 ulLogConfType = ((PRES_DES_INFO)rdResDes)->ulLogConfType;
5332 ulResDesTag = ((PRES_DES_INFO)rdResDes)->ulResDesTag;
5333 }
5334 else
5335 {
5336 return CR_INVALID_RES_DES;
5337 }
5338
5339 if ((ForResource == ResType_All) && (pResourceID == NULL))
5340 return CR_INVALID_POINTER;
5341
5342 if (ulFlags != 0)
5343 return CR_INVALID_FLAG;
5344
5345 if (hMachine != NULL)
5346 {
5347 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5348 if (BindingHandle == NULL)
5349 return CR_FAILURE;
5350
5351 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5352 if (StringTable == 0)
5353 return CR_FAILURE;
5354 }
5355 else
5356 {
5357 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5358 return CR_FAILURE;
5359 }
5360
5361 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
5362 if (lpDevInst == NULL)
5363 return CR_INVALID_DEVNODE;
5364
5366 {
5368 lpDevInst,
5369 ulLogConfTag,
5370 ulLogConfType,
5371 ForResource,
5372 ulResDesTag,
5373 &ulNextResDesTag,
5374 &ulNextResDesType,
5375 0);
5376 }
5378 {
5380 }
5382
5383 if (ret != CR_SUCCESS)
5384 return ret;
5385
5386 if (ForResource == ResType_All)
5387 *pResourceID = ulNextResDesType;
5388
5389 if (prdResDes)
5390 {
5391 pNewResDesInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(RES_DES_INFO));
5392 if (pNewResDesInfo == NULL)
5393 return CR_OUT_OF_MEMORY;
5394
5395 pNewResDesInfo->ulMagic = LOG_CONF_MAGIC;
5396 pNewResDesInfo->dnDevInst = dnDevInst;
5397 pNewResDesInfo->ulLogConfType = ulLogConfType;
5398 pNewResDesInfo->ulLogConfTag = ulLogConfTag;
5399 pNewResDesInfo->ulResDesType = ulNextResDesType;
5400 pNewResDesInfo->ulResDesTag = ulNextResDesTag;
5401
5402 *prdResDes = (RES_DES)pNewResDesInfo;
5403 }
5404
5405 return CR_SUCCESS;
5406}
DWORD WINAPI PNP_GetNextResDes(handle_t hBinding, LPWSTR pDeviceID, DWORD ulLogConfTag, DWORD ulLogConfType, RESOURCEID ResourceID, DWORD ulResourceTag, DWORD *pulNextResType, DWORD *pulNextResTag, DWORD ulFlags)
Definition: rpcserver.c:4762
DWORD_PTR RES_DES
Definition: cfgmgr32.h:93
#define ResType_All
Definition: cfgmgr32.h:575
DWORD DEVINST
Definition: cfgmgr32.h:76
ULONG ulLogConfTag
Definition: cfgmgr.c:72
DEVINST dnDevInst
Definition: cfgmgr.c:70
ULONG ulResDesType
Definition: cfgmgr.c:73
ULONG ulResDesTag
Definition: cfgmgr.c:74
ULONG ulLogConfType
Definition: cfgmgr.c:71
ULONG ulMagic
Definition: cfgmgr.c:69

Referenced by CM_Get_Next_Res_Des().

◆ CM_Get_Parent()

CMAPI CONFIGRET WINAPI CM_Get_Parent ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 5414 of file cfgmgr.c.

5418{
5419 TRACE("CM_Get_Parent(%p %p %lx)\n",
5420 pdnDevInst, dnDevInst, ulFlags);
5421
5422 return CM_Get_Parent_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
5423}
CONFIGRET WINAPI CM_Get_Parent_Ex(_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5431

◆ CM_Get_Parent_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Parent_Ex ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5431 of file cfgmgr.c.

5436{
5437 WCHAR szRelatedDevInst[MAX_DEVICE_ID_LEN];
5439 HSTRING_TABLE StringTable = NULL;
5440 LPWSTR lpDevInst;
5441 DWORD dwIndex, dwLength = MAX_DEVICE_ID_LEN;
5442 CONFIGRET ret;
5443
5444 TRACE("CM_Get_Parent_Ex(%p %lx %lx %p)\n",
5445 pdnDevInst, dnDevInst, ulFlags, hMachine);
5446
5447 if (pdnDevInst == NULL)
5448 return CR_INVALID_POINTER;
5449
5450 if (dnDevInst == 0)
5451 return CR_INVALID_DEVINST;
5452
5453 if (ulFlags != 0)
5454 return CR_INVALID_FLAG;
5455
5456 *pdnDevInst = -1;
5457
5458 if (hMachine != NULL)
5459 {
5460 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5461 if (BindingHandle == NULL)
5462 return CR_FAILURE;
5463
5464 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5465 if (StringTable == 0)
5466 return CR_FAILURE;
5467 }
5468 else
5469 {
5470 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5471 return CR_FAILURE;
5472 }
5473
5474 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
5475 if (lpDevInst == NULL)
5476 return CR_INVALID_DEVNODE;
5477
5479 {
5481 PNP_GET_PARENT_DEVICE_INSTANCE,
5482 lpDevInst,
5483 szRelatedDevInst,
5484 &dwLength,
5485 0);
5486 }
5488 {
5490 }
5492
5493 if (ret != CR_SUCCESS)
5494 return ret;
5495
5496 TRACE("szRelatedDevInst: %s\n", debugstr_w(szRelatedDevInst));
5497
5498 dwIndex = pSetupStringTableAddString(StringTable, szRelatedDevInst, 1);
5499 if (dwIndex == -1)
5500 return CR_FAILURE;
5501
5502 *pdnDevInst = dwIndex;
5503
5504 return CR_SUCCESS;
5505}

Referenced by CM_Get_Parent(), SetupDiRegisterDeviceInfo(), and UpdateDevInfo().

◆ CM_Get_Res_Des_Data()

CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data ( _In_ RES_DES  rdResDes,
_Out_writes_bytes_(BufferLen) PVOID  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags 
)

Definition at line 5513 of file cfgmgr.c.

5518{
5519 TRACE("CM_Get_Res_Des_Data(%p %p %lu %lx)\n",
5520 rdResDes, Buffer, BufferLen, ulFlags);
5521
5522 return CM_Get_Res_Des_Data_Ex(rdResDes, Buffer, BufferLen, ulFlags, NULL);
5523}
CONFIGRET WINAPI CM_Get_Res_Des_Data_Ex(_In_ RES_DES rdResDes, _Out_writes_bytes_(BufferLen) PVOID Buffer, _In_ ULONG BufferLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5531

◆ CM_Get_Res_Des_Data_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data_Ex ( _In_ RES_DES  rdResDes,
_Out_writes_bytes_(BufferLen) PVOID  Buffer,
_In_ ULONG  BufferLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5531 of file cfgmgr.c.

5537{
5538 FIXME("CM_Get_Res_Des_Data_Ex(%p %p %lu %lx %p)\n",
5539 rdResDes, Buffer, BufferLen, ulFlags, hMachine);
5540
5542}

Referenced by CM_Get_Res_Des_Data().

◆ CM_Get_Res_Des_Data_Size()

CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data_Size ( _Out_ PULONG  pulSize,
_In_ RES_DES  rdResDes,
_In_ ULONG  ulFlags 
)

Definition at line 5550 of file cfgmgr.c.

5554{
5555 TRACE("CM_Get_Res_Des_Data_Size(%p %p %lx)\n",
5556 pulSize, rdResDes, ulFlags);
5557
5558 return CM_Get_Res_Des_Data_Size_Ex(pulSize, rdResDes, ulFlags, NULL);
5559}
CONFIGRET WINAPI CM_Get_Res_Des_Data_Size_Ex(_Out_ PULONG pulSize, _In_ RES_DES rdResDes, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5567
_Check_return_ _Out_ PULONG pulSize
Definition: winddi.h:2120

◆ CM_Get_Res_Des_Data_Size_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data_Size_Ex ( _Out_ PULONG  pulSize,
_In_ RES_DES  rdResDes,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5567 of file cfgmgr.c.

5572{
5573 TRACE("CM_Get_Res_Des_Data_Size_Ex(%p %p %lx %p)\n",
5574 pulSize, rdResDes, ulFlags, hMachine);
5575
5577}

Referenced by CM_Get_Res_Des_Data_Size().

◆ CM_Get_Resource_Conflict_Count()

CMAPI CONFIGRET WINAPI CM_Get_Resource_Conflict_Count ( _In_ CONFLICT_LIST  clConflictList,
_Out_ PULONG  pulCount 
)

Definition at line 5585 of file cfgmgr.c.

5588{
5589 PCONFLICT_DATA pConflictData;
5590
5591 FIXME("CM_Get_Resource_Conflict_Count(%p %p)\n",
5592 clConflictList, pulCount);
5593
5594 pConflictData = (PCONFLICT_DATA)clConflictList;
5595 if (!IsValidConflictData(pConflictData))
5597
5598 if (pulCount == NULL)
5599 return CR_INVALID_POINTER;
5600
5601 *pulCount = pConflictData->pConflictList->ConflictsListed;
5602
5603 return CR_SUCCESS;
5604}
DWORD ConflictsListed
Definition: pnp.idl:240

◆ CM_Get_Resource_Conflict_DetailsA()

CMAPI CONFIGRET WINAPI CM_Get_Resource_Conflict_DetailsA ( _In_ CONFLICT_LIST  clConflictList,
_In_ ULONG  ulIndex,
_Inout_ PCONFLICT_DETAILS_A  pConflictDetails 
)

Definition at line 5612 of file cfgmgr.c.

5616{
5617 FIXME("CM_Get_Resource_Conflict_CountA(%p %lu %p)\n",
5618 clConflictList, ulIndex, pConflictDetails);
5619
5621}

◆ CM_Get_Resource_Conflict_DetailsW()

CMAPI CONFIGRET WINAPI CM_Get_Resource_Conflict_DetailsW ( _In_ CONFLICT_LIST  clConflictList,
_In_ ULONG  ulIndex,
_Inout_ PCONFLICT_DETAILS_W  pConflictDetails 
)

Definition at line 5629 of file cfgmgr.c.

5633{
5634 FIXME("CM_Get_Resource_Conflict_CountW(%p %lu %p)\n",
5635 clConflictList, ulIndex, pConflictDetails);
5636
5638}

◆ CM_Get_Sibling()

CMAPI CONFIGRET WINAPI CM_Get_Sibling ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINST  DevInst,
_In_ ULONG  ulFlags 
)

Definition at line 5646 of file cfgmgr.c.

5650{
5651 TRACE("CM_Get_Sibling(%p %p %lx)\n",
5652 pdnDevInst, dnDevInst, ulFlags);
5653
5654 return CM_Get_Sibling_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
5655}
CONFIGRET WINAPI CM_Get_Sibling_Ex(_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5663

Referenced by CfmListRecursiveInsertSubDevices(), DevTreeRecursiveInsertSubDevices(), GetMonitorDevInstID(), and CDeviceView::GetSiblingDevice().

◆ CM_Get_Sibling_Ex()

CMAPI CONFIGRET WINAPI CM_Get_Sibling_Ex ( _Out_ PDEVINST  pdnDevInst,
_In_ DEVINST  DevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5663 of file cfgmgr.c.

5668{
5669 WCHAR szRelatedDevInst[MAX_DEVICE_ID_LEN];
5671 HSTRING_TABLE StringTable = NULL;
5672 LPWSTR lpDevInst;
5673 DWORD dwIndex, dwLength = MAX_DEVICE_ID_LEN;
5674 CONFIGRET ret;
5675
5676 TRACE("CM_Get_Sibling_Ex(%p %lx %lx %p)\n",
5677 pdnDevInst, dnDevInst, ulFlags, hMachine);
5678
5679 if (pdnDevInst == NULL)
5680 return CR_INVALID_POINTER;
5681
5682 if (dnDevInst == 0)
5683 return CR_INVALID_DEVINST;
5684
5685 if (ulFlags != 0)
5686 return CR_INVALID_FLAG;
5687
5688 *pdnDevInst = -1;
5689
5690 if (hMachine != NULL)
5691 {
5692 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5693 if (BindingHandle == NULL)
5694 return CR_FAILURE;
5695
5696 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5697 if (StringTable == 0)
5698 return CR_FAILURE;
5699 }
5700 else
5701 {
5702 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5703 return CR_FAILURE;
5704 }
5705
5706 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
5707 if (lpDevInst == NULL)
5708 return CR_INVALID_DEVNODE;
5709
5711 {
5713 PNP_GET_SIBLING_DEVICE_INSTANCE,
5714 lpDevInst,
5715 szRelatedDevInst,
5716 &dwLength,
5717 0);
5718 }
5720 {
5722 }
5724
5725 if (ret != CR_SUCCESS)
5726 return ret;
5727
5728 TRACE("szRelatedDevInst: %s\n", debugstr_w(szRelatedDevInst));
5729
5730 dwIndex = pSetupStringTableAddString(StringTable, szRelatedDevInst, 1);
5731 if (dwIndex == -1)
5732 return CR_FAILURE;
5733
5734 *pdnDevInst = dwIndex;
5735
5736 return CR_SUCCESS;
5737}

Referenced by CM_Get_Sibling().

◆ CM_Get_Version()

CMAPI WORD WINAPI CM_Get_Version ( VOID  )

Definition at line 5745 of file cfgmgr.c.

5746{
5747 TRACE("CM_Get_Version()\n");
5748
5749 return CM_Get_Version_Ex(NULL);
5750}
WORD WINAPI CM_Get_Version_Ex(_In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5758

Referenced by test_CM_Get_Version().

◆ CM_Get_Version_Ex()

CMAPI WORD WINAPI CM_Get_Version_Ex ( _In_opt_ HMACHINE  hMachine)

Definition at line 5758 of file cfgmgr.c.

5760{
5762 WORD Version = 0;
5763 CONFIGRET ret;
5764
5765 TRACE("CM_Get_Version_Ex(%p)\n", hMachine);
5766
5767 if (hMachine != NULL)
5768 {
5769 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5770 if (BindingHandle == NULL)
5771 return 0;
5772 }
5773 else
5774 {
5776 return CR_FAILURE;
5777 }
5778
5780 {
5782 }
5784 {
5786 }
5788
5789 if (ret != CR_SUCCESS)
5790 return 0;
5791
5792 return Version;
5793}
DWORD WINAPI PNP_GetVersion(handle_t hBinding, WORD *pVersion)
Definition: rpcserver.c:702
unsigned short WORD
Definition: ntddk_ex.h:93
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469

Referenced by CM_Get_Version().

◆ CM_Import_PowerScheme()

CONFIGRET CM_Import_PowerScheme ( _In_ LPCWSTR  ImportFileNamePath,
_Inout_ GUID **  DestinationSchemeGuid,
_Out_ PDWORD  Error 
)

◆ CM_Intersect_Range_List()

CMAPI CONFIGRET WINAPI CM_Intersect_Range_List ( _In_ RANGE_LIST  rlhOld1,
_In_ RANGE_LIST  rlhOld2,
_In_ RANGE_LIST  rlhNew,
_In_ ULONG  ulFlags 
)

Definition at line 5801 of file cfgmgr.c.

5806{
5807 FIXME("CM_Intersect_Range_List(%p %p %p %lx)\n",
5808 rlhOld1, rlhOld2, rlhNew, ulFlags);
5809
5811}

◆ CM_Invert_Range_List()

CMAPI CONFIGRET WINAPI CM_Invert_Range_List ( _In_ RANGE_LIST  rlhOld,
_In_ RANGE_LIST  rlhNew,
_In_ DWORDLONG  ullMaxValue,
_In_ ULONG  ulFlags 
)

Definition at line 5819 of file cfgmgr.c.

5824{
5825 FIXME("CM_Invert_Range_List(%p %p %I64u %lx)\n",
5826 rlhOld, rlhNew, ullMaxValue, ulFlags);
5827
5829}

◆ CM_Is_Dock_Station_Present()

CMAPI CONFIGRET WINAPI CM_Is_Dock_Station_Present ( _Out_ PBOOL  pbPresent)

Definition at line 5837 of file cfgmgr.c.

5839{
5840 TRACE("CM_Is_Dock_Station_Present(%p)\n",
5841 pbPresent);
5842
5843 return CM_Is_Dock_Station_Present_Ex(pbPresent, NULL);
5844}
CONFIGRET WINAPI CM_Is_Dock_Station_Present_Ex(_Out_ PBOOL pbPresent, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5852

◆ CM_Is_Dock_Station_Present_Ex()

CMAPI CONFIGRET WINAPI CM_Is_Dock_Station_Present_Ex ( _Out_ PBOOL  pbPresent,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5852 of file cfgmgr.c.

5855{
5857 CONFIGRET ret;
5858
5859 TRACE("CM_Is_Dock_Station_Present_Ex(%p %p)\n",
5860 pbPresent, hMachine);
5861
5862 if (pbPresent == NULL)
5863 return CR_INVALID_POINTER;
5864
5865 *pbPresent = FALSE;
5866
5867 if (hMachine != NULL)
5868 {
5869 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5870 if (BindingHandle == NULL)
5871 return CR_FAILURE;
5872 }
5873 else
5874 {
5876 return CR_FAILURE;
5877 }
5878
5880 {
5882 pbPresent);
5883 }
5885 {
5887 }
5889
5890 return ret;
5891}
CONFIGRET WINAPI PNP_IsDockStationPresent(handle_t hBinding, BOOL *Present)
Definition: rpcserver.c:3902

Referenced by CM_Is_Dock_Station_Present().

◆ CM_Is_Version_Available()

CMAPI BOOL WINAPI CM_Is_Version_Available ( _In_ WORD  wVersion)

Definition at line 5899 of file cfgmgr.c.

5901{
5902 TRACE("CM_Is_Version_Available(%hu)\n",
5903 wVersion);
5904
5905 return CM_Is_Version_Available_Ex(wVersion, NULL);
5906}
BOOL WINAPI CM_Is_Version_Available_Ex(_In_ WORD wVersion, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5914

◆ CM_Is_Version_Available_Ex()

CMAPI BOOL WINAPI CM_Is_Version_Available_Ex ( _In_ WORD  wVersion,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5914 of file cfgmgr.c.

5917{
5919 WORD wServerVersion;
5920 CONFIGRET ret;
5921
5922 TRACE("CM_Is_Version_Available_Ex(%hu %p)\n",
5923 wVersion, hMachine);
5924
5925 if (wVersion <= 0x400)
5926 return TRUE;
5927
5928 if (hMachine != NULL)
5929 {
5930 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5931 if (BindingHandle == NULL)
5932 return FALSE;
5933 }
5934 else
5935 {
5937 return FALSE;
5938 }
5939
5941 {
5942 ret = PNP_GetVersion(BindingHandle, &wServerVersion);
5943 }
5945 {
5947 }
5949
5950 if (ret != CR_SUCCESS)
5951 return FALSE;
5952
5953 return (wServerVersion >= wVersion);
5954}

Referenced by CM_Is_Version_Available().

◆ CM_Locate_DevNode_ExA()

CMAPI CONFIGRET WINAPI CM_Locate_DevNode_ExA ( _Out_ PDEVINST  pdnDevInst,
_In_opt_ DEVINSTID_A  pDeviceID,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 5996 of file cfgmgr.c.

6001{
6002 DEVINSTID_W pDevIdW = NULL;
6004
6005 TRACE("CM_Locate_DevNode_ExA(%p %s %lx %p)\n",
6006 pdnDevInst, debugstr_a(pDeviceID), ulFlags, hMachine);
6007
6008 if (pDeviceID != NULL)
6009 {
6010 if (pSetupCaptureAndConvertAnsiArg(pDeviceID, &pDevIdW))
6011 return CR_INVALID_DEVICE_ID;
6012 }
6013
6014 ret = CM_Locate_DevNode_ExW(pdnDevInst, pDevIdW, ulFlags, hMachine);
6015
6016 if (pDevIdW != NULL)
6017 MyFree(pDevIdW);
6018
6019 return ret;
6020}
CONFIGRET WINAPI CM_Locate_DevNode_ExW(_Out_ PDEVINST pdnDevInst, _In_opt_ DEVINSTID_W pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6028

Referenced by CM_Locate_DevNodeA().

◆ CM_Locate_DevNode_ExW()

CMAPI CONFIGRET WINAPI CM_Locate_DevNode_ExW ( _Out_ PDEVINST  pdnDevInst,
_In_opt_ DEVINSTID_W  pDeviceID,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6028 of file cfgmgr.c.

6033{
6034 WCHAR DeviceIdBuffer[MAX_DEVICE_ID_LEN];
6036 HSTRING_TABLE StringTable = NULL;
6038
6039 TRACE("CM_Locate_DevNode_ExW(%p %s %lx %p)\n",
6040 pdnDevInst, debugstr_w(pDeviceID), ulFlags, hMachine);
6041
6042 if (pdnDevInst == NULL)
6043 return CR_INVALID_POINTER;
6044
6045 if (ulFlags & ~CM_LOCATE_DEVNODE_BITS)
6046 return CR_INVALID_FLAG;
6047
6048 if (hMachine != NULL)
6049 {
6050 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6051 if (BindingHandle == NULL)
6052 return CR_FAILURE;
6053
6054 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6055 if (StringTable == 0)
6056 return CR_FAILURE;
6057 }
6058 else
6059 {
6060 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6061 return CR_FAILURE;
6062 }
6063
6064 if (pDeviceID != NULL && lstrlenW(pDeviceID) != 0)
6065 {
6066 lstrcpyW(DeviceIdBuffer, pDeviceID);
6067
6069 {
6070 /* Validate the device ID */
6072 DeviceIdBuffer,
6073 ulFlags);
6074 }
6076 {
6078 }
6080 }
6081 else
6082 {
6084 {
6085 /* Get the root device ID */
6087 DeviceIdBuffer,
6089 }
6091 {
6093 }
6095 }
6096
6097 TRACE("DeviceIdBuffer: %s\n", debugstr_w(DeviceIdBuffer));
6098
6099 if (ret == CR_SUCCESS)
6100 {
6101 *pdnDevInst = pSetupStringTableAddString(StringTable, DeviceIdBuffer, 1);
6102 if (*pdnDevInst == -1)
6103 ret = CR_FAILURE;
6104 }
6105
6106 return ret;
6107}
DWORD WINAPI PNP_GetRootDeviceInstance(handle_t hBinding, LPWSTR pDeviceID, PNP_RPC_STRING_LEN ulLength)
Definition: rpcserver.c:858
DWORD WINAPI PNP_ValidateDeviceInstance(handle_t hBinding, LPWSTR pDeviceID, DWORD ulFlags)
Definition: rpcserver.c:815
#define CM_LOCATE_DEVNODE_BITS
Definition: cfgmgr32.h:764

Referenced by CM_Locate_DevNode_ExA(), CM_Locate_DevNodeW(), and CreateDeviceInfo().

◆ CM_Locate_DevNodeA()

CMAPI CONFIGRET WINAPI CM_Locate_DevNodeA ( _Out_ PDEVINST  pdnDevInst,
_In_opt_ DEVINSTID_A  pDeviceID,
_In_ ULONG  ulFlags 
)

Definition at line 5962 of file cfgmgr.c.

5966{
5967 TRACE("CM_Locate_DevNodeA(%p %s %lx)\n",
5968 pdnDevInst, debugstr_a(pDeviceID), ulFlags);
5969
5970 return CM_Locate_DevNode_ExA(pdnDevInst, pDeviceID, ulFlags, NULL);
5971}
CONFIGRET WINAPI CM_Locate_DevNode_ExA(_Out_ PDEVINST pdnDevInst, _In_opt_ DEVINSTID_A pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5996

◆ CM_Locate_DevNodeW()

CMAPI CONFIGRET WINAPI CM_Locate_DevNodeW ( _Out_ PDEVINST  pdnDevInst,
_In_opt_ DEVINSTID_W  pDeviceID,
_In_ ULONG  ulFlags 
)

Definition at line 5979 of file cfgmgr.c.

5983{
5984 TRACE("CM_Locate_DevNodeW(%p %s %lx)\n",
5985 pdnDevInst, debugstr_w(pDeviceID), ulFlags);
5986
5987 return CM_Locate_DevNode_ExW(pdnDevInst, pDeviceID, ulFlags, NULL);
5988}

Referenced by CRootNode::SetupNode().

◆ CM_Merge_Range_List()

CMAPI CONFIGRET WINAPI CM_Merge_Range_List ( _In_ RANGE_LIST  rlhOld1,
_In_ RANGE_LIST  rlhOld2,
_In_ RANGE_LIST  rlhNew,
_In_ ULONG  ulFlags 
)

Definition at line 6115 of file cfgmgr.c.

6120{
6121 FIXME("CM_Merge_Range_List(%p %p %p %lx)\n",
6122 rlhOld1, rlhOld2, rlhNew, ulFlags);
6123
6125}

◆ CM_Modify_Res_Des()

CMAPI CONFIGRET WINAPI CM_Modify_Res_Des ( _Out_ PRES_DES  prdResDes,
_In_ RES_DES  rdResDes,
_In_ RESOURCEID  ResourceID,
_In_reads_bytes_(ResourceLen) PCVOID  ResourceData,
_In_ ULONG  ResourceLen,
_In_ ULONG  ulFlags 
)

Definition at line 6133 of file cfgmgr.c.

6140{
6141 TRACE("CM_Modify_Res_Des(%p %p %lx %p %lu %lx)\n",
6142 prdResDes, rdResDes, ResourceID, ResourceData,
6143 ResourceLen, ulFlags);
6144
6145 return CM_Modify_Res_Des_Ex(prdResDes, rdResDes, ResourceID, ResourceData,
6146 ResourceLen, ulFlags, NULL);
6147}
CONFIGRET WINAPI CM_Modify_Res_Des_Ex(_Out_ PRES_DES prdResDes, _In_ RES_DES rdResDes, _In_ RESOURCEID ResourceID, _In_reads_bytes_(ResourceLen) PCVOID ResourceData, _In_ ULONG ResourceLen, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6155

◆ CM_Modify_Res_Des_Ex()

CMAPI CONFIGRET WINAPI CM_Modify_Res_Des_Ex ( _Out_ PRES_DES  prdResDes,
_In_ RES_DES  rdResDes,
_In_ RESOURCEID  ResourceID,
_In_reads_bytes_(ResourceLen) PCVOID  ResourceData,
_In_ ULONG  ResourceLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6155 of file cfgmgr.c.

6163{
6164 FIXME("CM_Modify_Res_Des_Ex(%p %p %lx %p %lu %lx %p)\n",
6165 prdResDes, rdResDes, ResourceID, ResourceData,
6166 ResourceLen, ulFlags, hMachine);
6167
6169}

Referenced by CM_Modify_Res_Des().

◆ CM_Move_DevNode()

CMAPI CONFIGRET WINAPI CM_Move_DevNode ( _In_ DEVINST  dnFromDevInst,
_In_ DEVINST  dnToDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 6177 of file cfgmgr.c.

6181{
6182 TRACE("CM_Move_DevNode(%lx %lx %lx)\n",
6183 dnFromDevInst, dnToDevInst, ulFlags);
6184
6185 return CM_Move_DevNode_Ex(dnFromDevInst, dnToDevInst, ulFlags, NULL);
6186}
CONFIGRET WINAPI CM_Move_DevNode_Ex(_In_ DEVINST dnFromDevInst, _In_ DEVINST dnToDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6194

◆ CM_Move_DevNode_Ex()

CMAPI CONFIGRET WINAPI CM_Move_DevNode_Ex ( _In_ DEVINST  dnFromDevInst,
_In_ DEVINST  dnToDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6194 of file cfgmgr.c.

6199{
6201 HSTRING_TABLE StringTable = NULL;
6202 LPWSTR lpFromDevInst;
6203 LPWSTR lpToDevInst;
6204 CONFIGRET ret;
6205
6206 FIXME("CM_Move_DevNode_Ex(%lx %lx %lx %p)\n",
6207 dnFromDevInst, dnToDevInst, ulFlags, hMachine);
6208
6209 if (!pSetupIsUserAdmin())
6210 return CR_ACCESS_DENIED;
6211
6212 if (dnFromDevInst == 0 || dnToDevInst == 0)
6213 return CR_INVALID_DEVNODE;
6214
6215 if (ulFlags != 0)
6216 return CR_INVALID_FLAG;
6217
6218 if (hMachine != NULL)
6219 {
6220 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6221 if (BindingHandle == NULL)
6222 return CR_FAILURE;
6223
6224 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6225 if (StringTable == 0)
6226 return CR_FAILURE;
6227 }
6228 else
6229 {
6230 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6231 return CR_FAILURE;
6232 }
6233
6234 lpFromDevInst = pSetupStringTableStringFromId(StringTable, dnFromDevInst);
6235 if (lpFromDevInst == NULL)
6236 return CR_INVALID_DEVNODE;
6237
6238 lpToDevInst = pSetupStringTableStringFromId(StringTable, dnToDevInst);
6239 if (lpToDevInst == NULL)
6240 return CR_INVALID_DEVNODE;
6241
6243 {
6245 PNP_DEVINST_MOVE,
6246 ulFlags,
6247 lpFromDevInst,
6248 lpToDevInst);
6249 }
6251 {
6253 }
6255
6256 return ret;
6257}

Referenced by CM_Move_DevNode().

◆ CM_Next_Range()

CMAPI CONFIGRET WINAPI CM_Next_Range ( _Inout_ PRANGE_ELEMENT  preElement,
_Out_ PDWORDLONG  pullStart,
_Out_ PDWORDLONG  pullEnd,
_In_ ULONG  ulFlags 
)

Definition at line 6265 of file cfgmgr.c.

6270{
6271 PINTERNAL_RANGE_LIST pRangeList;
6272 PINTERNAL_RANGE pRange;
6273 PLIST_ENTRY ListEntry;
6275
6276 FIXME("CM_Next_Range(%p %p %p %lx)\n",
6277 preElement, pullStart, pullEnd, ulFlags);
6278
6279 pRange = (PINTERNAL_RANGE)preElement;
6280
6281 if (pRange == NULL || pRange->pRangeList == NULL)
6282 return CR_FAILURE;
6283
6284 if (pullStart == NULL || pullEnd == NULL)
6285 return CR_INVALID_POINTER;
6286
6287 if (ulFlags != 0)
6288 return CR_INVALID_FLAG;
6289
6290 pRangeList = pRange->pRangeList;
6291
6292 /* Lock the range list */
6293 WaitForSingleObject(pRangeList->hMutex, INFINITE);
6294
6295 /* Fail, if we reached the end of the list */
6296 if (pRange->ListEntry.Flink == &pRangeList->ListHead)
6297 {
6298 ret = CR_FAILURE;
6299 goto done;
6300 }
6301
6302 /* Get the next range */
6303 ListEntry = pRangeList->ListHead.Flink;
6304 pRange = CONTAINING_RECORD(ListEntry, INTERNAL_RANGE, ListEntry);
6305
6306 /* Return the range data */
6307 *pullStart = pRange->ullStart;
6308 *pullEnd = pRange->ullEnd;
6309 *preElement = (RANGE_ELEMENT)pRange;
6310
6311done:
6312 /* Unlock the range list */
6313 ReleaseMutex(pRangeList->hMutex);
6314
6315 return ret;
6316}
struct _INTERNAL_RANGE * PINTERNAL_RANGE

◆ CM_Open_Class_Key_ExA()

CMAPI CONFIGRET WINAPI CM_Open_Class_Key_ExA ( _In_opt_ LPGUID  pszClassGuid,
_In_opt_ LPCSTR  pszClassName,
_In_ REGSAM  samDesired,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkClass,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6368 of file cfgmgr.c.

6376{
6377 LPWSTR pszClassNameW = NULL;
6378 CONFIGRET ret;
6379
6380 TRACE("CM_Open_Class_Key_ExA(%p %s %lx %lx %p %lx %p)\n",
6381 debugstr_guid(pClassGuid), debugstr_a(pszClassName),
6382 samDesired, Disposition, phkClass, ulFlags, hMachine);
6383
6384 if (pszClassName != NULL)
6385 {
6386 if (pSetupCaptureAndConvertAnsiArg(pszClassName, &pszClassNameW))
6387 return CR_INVALID_DATA;
6388 }
6389
6390 ret = CM_Open_Class_Key_ExW(pClassGuid, pszClassNameW, samDesired,
6391 Disposition, phkClass, ulFlags, hMachine);
6392
6393 if (pszClassNameW != NULL)
6394 MyFree(pszClassNameW);
6395
6396 return ret;
6397}
CONFIGRET WINAPI CM_Open_Class_Key_ExW(_In_opt_ LPGUID pClassGuid, _In_opt_ LPCWSTR pszClassName, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkClass, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6405
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
Definition: cmfuncs.h:56

Referenced by CM_Open_Class_KeyA().

◆ CM_Open_Class_Key_ExW()

CMAPI CONFIGRET WINAPI CM_Open_Class_Key_ExW ( _In_opt_ LPGUID  pszClassGuid,
_In_opt_ LPCWSTR  pszClassName,
_In_ REGSAM  samDesired,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkClass,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6405 of file cfgmgr.c.

6413{
6414 WCHAR szKeyName[MAX_PATH];
6415 LPWSTR lpGuidString;
6416 DWORD dwDisposition;
6417 DWORD dwError;
6418 HKEY hKey;
6419
6420 TRACE("CM_Open_Class_Key_ExW(%p %s %lx %lx %p %lx %p)\n",
6421 debugstr_guid(pClassGuid), debugstr_w(pszClassName),
6422 samDesired, Disposition, phkClass, ulFlags, hMachine);
6423
6424 /* Check Disposition and ulFlags */
6426 (ulFlags & ~CM_OPEN_CLASS_KEY_BITS))
6427 return CR_INVALID_FLAG;
6428
6429 /* Check phkClass */
6430 if (phkClass == NULL)
6431 return CR_INVALID_POINTER;
6432
6433 *phkClass = NULL;
6434
6435 if (ulFlags == CM_OPEN_CLASS_KEY_INTERFACE &&
6436 pszClassName != NULL)
6437 return CR_INVALID_DATA;
6438
6439 if (hMachine == NULL)
6440 {
6442 }
6443 else
6444 {
6445 if (RegConnectRegistryW(((PMACHINE_INFO)hMachine)->szMachineName,
6447 &hKey))
6448 return CR_REGISTRY_ERROR;
6449 }
6450
6451 if (ulFlags & CM_OPEN_CLASS_KEY_INTERFACE)
6452 {
6453 lstrcpyW(szKeyName, DeviceClasses);
6454 }
6455 else
6456 {
6457 lstrcpyW(szKeyName, ControlClass);
6458 }
6459
6460 if (pClassGuid != NULL)
6461 {
6462 if (UuidToStringW((UUID*)pClassGuid, &lpGuidString) != RPC_S_OK)
6463 {
6465 return CR_INVALID_DATA;
6466 }
6467
6468 lstrcatW(szKeyName, BackslashOpenBrace);
6469 lstrcatW(szKeyName, lpGuidString);
6470 lstrcatW(szKeyName, CloseBrace);
6471 }
6472
6474 {
6475 dwError = RegCreateKeyExW(hKey, szKeyName, 0, NULL, 0, samDesired,
6476 NULL, phkClass, &dwDisposition);
6477 }
6478 else
6479 {
6480 dwError = RegOpenKeyExW(hKey, szKeyName, 0, samDesired, phkClass);
6481 }
6482
6484
6485 if (pClassGuid != NULL)
6486 RpcStringFreeW(&lpGuidString);
6487
6488 if (dwError != ERROR_SUCCESS)
6489 {
6490 *phkClass = NULL;
6492 }
6493
6494 if (pszClassName != NULL)
6495 {
6496 RegSetValueExW(*phkClass, Class, 0, REG_SZ, (LPBYTE)pszClassName,
6497 (lstrlenW(pszClassName) + 1) * sizeof(WCHAR));
6498 }
6499
6500 return CR_SUCCESS;
6501}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define CM_OPEN_CLASS_KEY_INTERFACE
Definition: cfgmgr32.h:773
#define RegDisposition_Bits
Definition: cfgmgr32.h:611
#define CM_OPEN_CLASS_KEY_BITS
Definition: cfgmgr32.h:774
#define RegDisposition_OpenAlways
Definition: cfgmgr32.h:609
#define CR_NO_SUCH_REGISTRY_KEY
Definition: cfgmgr32.h:892
#define CR_REGISTRY_ERROR
Definition: cfgmgr32.h:875
static const WCHAR ControlClass[]
Definition: cfgmgr.c:38
static const WCHAR BackslashOpenBrace[]
Definition: cfgmgr.c:34
static const WCHAR DeviceClasses[]
Definition: cfgmgr.c:43
static const WCHAR CloseBrace[]
Definition: cfgmgr.c:35
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1096
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4882
LONG WINAPI RegConnectRegistryW(LPCWSTR lpMachineName, HKEY hKey, PHKEY phkResult)
Definition: reg.c:874
#define MAX_PATH
Definition: compat.h:34
FxAutoRegKey hKey
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
RPC_STATUS WINAPI UuidToStringW(UUID *Uuid, RPC_WSTR *StringUuid)
Definition: rpcrt4_main.c:540
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:175
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by CM_Open_Class_Key_ExA(), CM_Open_Class_KeyW(), and SetupDiBuildClassInfoListExW().

◆ CM_Open_Class_KeyA()

CMAPI CONFIGRET WINAPI CM_Open_Class_KeyA ( _In_opt_ LPGUID  ClassGuid,
_In_opt_ LPCSTR  pszClassName,
_In_ REGSAM  samDesired,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkClass,
_In_ ULONG  ulFlags 
)

Definition at line 6324 of file cfgmgr.c.

6331{
6332 TRACE("CM_Open_Class_KeyA(%p %s %lx %lx %p %lx)\n",
6333 debugstr_guid(pClassGuid), debugstr_a(pszClassName),
6334 samDesired, Disposition, phkClass, ulFlags);
6335
6336 return CM_Open_Class_Key_ExA(pClassGuid, pszClassName, samDesired,
6337 Disposition, phkClass, ulFlags, NULL);
6338}
CONFIGRET WINAPI CM_Open_Class_Key_ExA(_In_opt_ LPGUID pClassGuid, _In_opt_ LPCSTR pszClassName, _In_ REGSAM samDesired, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkClass, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6368

◆ CM_Open_Class_KeyW()

CMAPI CONFIGRET WINAPI CM_Open_Class_KeyW ( _In_opt_ LPGUID  ClassGuid,
_In_opt_ LPCWSTR  pszClassName,
_In_ REGSAM  samDesired,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkClass,
_In_ ULONG  ulFlags 
)

Definition at line 6346 of file cfgmgr.c.

6353{
6354 TRACE("CM_Open_Class_KeyW(%p %s %lx %lx %p %lx)\n",
6355 debugstr_guid(pClassGuid), debugstr_w(pszClassName),
6356 samDesired, Disposition, phkClass, ulFlags);
6357
6358 return CM_Open_Class_Key_ExW(pClassGuid, pszClassName, samDesired,
6359 Disposition, phkClass, ulFlags, NULL);
6360}

◆ CM_Open_Device_Interface_Key_ExA()

CMAPI CONFIGRET WINAPI CM_Open_Device_Interface_Key_ExA ( _In_ LPCSTR  pszDeviceInterface,
_In_ REGSAM  samDesired,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkDeviceInterface,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Open_Device_Interface_Key_ExW()

CMAPI CONFIGRET WINAPI CM_Open_Device_Interface_Key_ExW ( _In_ LPCWSTR  pszDeviceInterface,
_In_ REGSAM  samDesired,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkDeviceInterface,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Open_Device_Interface_KeyA()

CMAPI CONFIGRET WINAPI CM_Open_Device_Interface_KeyA ( _In_ LPCSTR  pszDeviceInterface,
_In_ REGSAM  samDesired,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkDeviceInterface,
_In_ ULONG  ulFlags 
)

◆ CM_Open_Device_Interface_KeyW()

CMAPI CONFIGRET WINAPI CM_Open_Device_Interface_KeyW ( _In_ LPCWSTR  pszDeviceInterface,
_In_ REGSAM  samDesired,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkDeviceInterface,
_In_ ULONG  ulFlags 
)

◆ CM_Open_DevNode_Key()

CMAPI CONFIGRET WINAPI CM_Open_DevNode_Key ( _In_ DEVINST  dnDevNode,
_In_ REGSAM  samDesired,
_In_ ULONG  ulHardwareProfile,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkDevice,
_In_ ULONG  ulFlags 
)

Definition at line 6509 of file cfgmgr.c.

6516{
6517 TRACE("CM_Open_DevNode_Key(%lx %lx %lu %lx %p %lx)\n",
6518 dnDevNode, samDesired, ulHardwareProfile, Disposition, phkDevice, ulFlags);
6519
6520 return CM_Open_DevNode_Key_Ex(dnDevNode, samDesired, ulHardwareProfile,
6521 Disposition, phkDevice, ulFlags, NULL);
6522}
CONFIGRET WINAPI CM_Open_DevNode_Key_Ex(_In_ DEVINST dnDevNode, _In_ REGSAM samDesired, _In_ ULONG ulHardwareProfile, _In_ REGDISPOSITION Disposition, _Out_ PHKEY phkDevice, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6530

◆ CM_Open_DevNode_Key_Ex()

CMAPI CONFIGRET WINAPI CM_Open_DevNode_Key_Ex ( _In_ DEVINST  dnDevNode,
_In_ REGSAM  samDesired,
_In_ ULONG  ulHardwareProfile,
_In_ REGDISPOSITION  Disposition,
_Out_ PHKEY  phkDevice,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6530 of file cfgmgr.c.

6538{
6540 HSTRING_TABLE StringTable = NULL;
6541 LPWSTR pszDevInst, pszKeyPath = NULL, pszInstancePath = NULL;
6542 LONG lError;
6543 DWORD dwDisposition;
6544 HKEY hRootKey = NULL;
6546
6547 TRACE("CM_Open_DevNode_Key_Ex(%lx %lx %lu %lx %p %lx %p)\n",
6548 dnDevNode, samDesired, ulHardwareProfile, Disposition, phkDevice, ulFlags, hMachine);
6549
6550 if (phkDevice == NULL)
6551 return CR_INVALID_POINTER;
6552
6553 *phkDevice = NULL;
6554
6555 if (dnDevNode == 0)
6556 return CR_INVALID_DEVNODE;
6557
6558 if (ulFlags & ~CM_REGISTRY_BITS)
6559 return CR_INVALID_FLAG;
6560
6562 return CR_INVALID_DATA;
6563
6564 if (hMachine != NULL)
6565 {
6566 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6567 if (BindingHandle == NULL)
6568 return CR_FAILURE;
6569
6570 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6571 if (StringTable == 0)
6572 return CR_FAILURE;
6573 }
6574 else
6575 {
6576 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6577 return CR_FAILURE;
6578 }
6579
6580 pszDevInst = pSetupStringTableStringFromId(StringTable, dnDevNode);
6581 if (pszDevInst == NULL)
6582 return CR_INVALID_DEVNODE;
6583
6584 TRACE("pszDevInst: %S\n", pszDevInst);
6585
6586 pszKeyPath = MyMalloc(512 * sizeof(WCHAR));
6587 if (pszKeyPath == NULL)
6588 {
6590 goto done;
6591 }
6592
6593 pszInstancePath = MyMalloc(512 * sizeof(WCHAR));
6594 if (pszInstancePath == NULL)
6595 {
6597 goto done;
6598 }
6599
6601 pszDevInst,
6602 pszKeyPath,
6603 pszInstancePath,
6604 ulHardwareProfile,
6605 ulFlags);
6606 if (ret != CR_SUCCESS)
6607 goto done;
6608
6609 TRACE("pszKeyPath: %S\n", pszKeyPath);
6610 TRACE("pszInstancePath: %S\n", pszInstancePath);
6611
6612 wcscat(pszKeyPath, L"\\");
6613 wcscat(pszKeyPath, pszInstancePath);
6614
6615 TRACE("pszKeyPath: %S\n", pszKeyPath);
6616
6617 if (hMachine == NULL)
6618 {
6619 hRootKey = HKEY_LOCAL_MACHINE;
6620 }
6621 else
6622 {
6623 if (RegConnectRegistryW(((PMACHINE_INFO)hMachine)->szMachineName,
6625 &hRootKey))
6626 {
6628 goto done;
6629 }
6630 }
6631
6633 {
6634 lError = RegCreateKeyExW(hRootKey,
6635 pszKeyPath,
6636 0,
6637 NULL,
6638 0,
6639 samDesired,
6640 NULL,
6641 phkDevice,
6642 &dwDisposition);
6643 }
6644 else
6645 {
6646 lError = RegOpenKeyExW(hRootKey,
6647 pszKeyPath,
6648 0,
6649 samDesired,
6650 phkDevice);
6651 }
6652
6653 if (lError != ERROR_SUCCESS)
6654 {
6655 *phkDevice = NULL;
6657 }
6658
6659done:
6660 if ((hRootKey != NULL) && (hRootKey != HKEY_LOCAL_MACHINE))
6661 RegCloseKey(hRootKey);
6662
6663 if (pszInstancePath != NULL)
6664 MyFree(pszInstancePath);
6665
6666 if (pszKeyPath != NULL)
6667 MyFree(pszKeyPath);
6668
6669 return ret;
6670}
wcscat
long LONG
Definition: pedump.c:60

Referenced by CM_Open_DevNode_Key().

◆ CM_Query_And_Remove_SubTree_ExA()

CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTree_ExA ( _In_ DEVINST  dnAncestor,
_Out_opt_ PPNP_VETO_TYPE  pVetoType,
_Out_writes_opt_(ulNameLength) LPSTR  pszVetoName,
_In_ ULONG  ulNameLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6718 of file cfgmgr.c.

6725{
6726 LPWSTR lpLocalVetoName;
6727 CONFIGRET ret;
6728
6729 TRACE("CM_Query_And_Remove_SubTree_ExA(%lx %p %p %lu %lx %p)\n",
6730 dnAncestor, pVetoType, pszVetoName, ulNameLength,
6731 ulFlags, hMachine);
6732
6733 if (pszVetoName == NULL && ulNameLength == 0)
6734 return CR_INVALID_POINTER;
6735
6736 lpLocalVetoName = HeapAlloc(GetProcessHeap(), 0, ulNameLength * sizeof(WCHAR));
6737 if (lpLocalVetoName == NULL)
6738 return CR_OUT_OF_MEMORY;
6739
6740 ret = CM_Query_And_Remove_SubTree_ExW(dnAncestor, pVetoType, lpLocalVetoName,
6741 ulNameLength, ulFlags, hMachine);
6742 if (ret == CR_REMOVE_VETOED)
6743 {
6745 0,
6746 lpLocalVetoName,
6747 ulNameLength,
6748 pszVetoName,
6749 ulNameLength,
6750 NULL,
6751 NULL) == 0)
6752 ret = CR_FAILURE;
6753 }
6754
6755 HeapFree(GetProcessHeap(), 0, lpLocalVetoName);
6756
6757 return ret;
6758}
#define CR_REMOVE_VETOED
Definition: cfgmgr32.h:869
CONFIGRET WINAPI CM_Query_And_Remove_SubTree_ExW(_In_ DEVINST dnAncestor, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6766

Referenced by CM_Query_And_Remove_SubTreeA().

◆ CM_Query_And_Remove_SubTree_ExW()

CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTree_ExW ( _In_ DEVINST  dnAncestor,
_Out_opt_ PPNP_VETO_TYPE  pVetoType,
_Out_writes_opt_(ulNameLength) LPWSTR  pszVetoName,
_In_ ULONG  ulNameLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6766 of file cfgmgr.c.

6773{
6775 HSTRING_TABLE StringTable = NULL;
6776 LPWSTR lpDevInst;
6777 CONFIGRET ret;
6778
6779 TRACE("CM_Query_And_Remove_SubTree_ExW(%lx %p %p %lu %lx %p)\n",
6780 dnAncestor, pVetoType, pszVetoName, ulNameLength,
6781 ulFlags, hMachine);
6782
6783 if (dnAncestor == 0)
6784 return CR_INVALID_DEVNODE;
6785
6786 if (ulFlags & ~CM_REMOVE_BITS)
6787 return CR_INVALID_FLAG;
6788
6789 if (pszVetoName == NULL && ulNameLength == 0)
6790 return CR_INVALID_POINTER;
6791
6792 if (hMachine != NULL)
6793 {
6794 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6795 if (BindingHandle == NULL)
6796 return CR_FAILURE;
6797
6798 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6799 if (StringTable == 0)
6800 return CR_FAILURE;
6801 }
6802 else
6803 {
6804 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6805 return CR_FAILURE;
6806 }
6807
6808 lpDevInst = pSetupStringTableStringFromId(StringTable, dnAncestor);
6809 if (lpDevInst == NULL)
6810 return CR_INVALID_DEVNODE;
6811
6813 {
6815 lpDevInst,
6816 pVetoType,
6817 pszVetoName,
6818 ulNameLength,
6819 ulFlags);
6820 }
6822 {
6824 }
6826
6827 return ret;
6828}
DWORD WINAPI PNP_QueryRemove(handle_t hBinding, LPWSTR pszDeviceID, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, DWORD ulNameLength, DWORD ulFlags)
Definition: rpcserver.c:3805
#define CM_REMOVE_BITS
Definition: cfgmgr32.h:780

Referenced by CM_Query_And_Remove_SubTree_ExA(), and CM_Query_And_Remove_SubTreeW().

◆ CM_Query_And_Remove_SubTreeA()

CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTreeA ( _In_ DEVINST  dnAncestor,
_Out_opt_ PPNP_VETO_TYPE  pVetoType,
_Out_writes_opt_(ulNameLength) LPSTR  pszVetoName,
_In_ ULONG  ulNameLength,
_In_ ULONG  ulFlags 
)

Definition at line 6678 of file cfgmgr.c.

6684{
6685 TRACE("CM_Query_And_Remove_SubTreeA(%lx %p %p %lu %lx)\n",
6686 dnAncestor, pVetoType, pszVetoName, ulNameLength, ulFlags);
6687
6688 return CM_Query_And_Remove_SubTree_ExA(dnAncestor, pVetoType, pszVetoName,
6689 ulNameLength, ulFlags, NULL);
6690}
CONFIGRET WINAPI CM_Query_And_Remove_SubTree_ExA(_In_ DEVINST dnAncestor, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6718

◆ CM_Query_And_Remove_SubTreeW()

CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTreeW ( _In_ DEVINST  dnAncestor,
_Out_opt_ PPNP_VETO_TYPE  pVetoType,
_Out_writes_opt_(ulNameLength) LPWSTR  pszVetoName,
_In_ ULONG  ulNameLength,
_In_ ULONG  ulFlags 
)

Definition at line 6698 of file cfgmgr.c.

6704{
6705 TRACE("CM_Query_And_Remove_SubTreeW(%lx %p %p %lu %lx)\n",
6706 dnAncestor, pVetoType, pszVetoName, ulNameLength, ulFlags);
6707
6708 return CM_Query_And_Remove_SubTree_ExW(dnAncestor, pVetoType, pszVetoName,
6709 ulNameLength, ulFlags, NULL);
6710}

◆ CM_Query_Arbitrator_Free_Data()

CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Data ( _Out_writes_bytes_(DataLen) PVOID  pData,
_In_ ULONG  DataLen,
_In_ DEVINST  dnDevInst,
_In_ RESOURCEID  ResourceID,
_In_ ULONG  ulFlags 
)

Definition at line 6836 of file cfgmgr.c.

6842{
6843 TRACE("CM_Query_Arbitrator_Free_Data(%p %lu %lx %lu 0x%08lx)\n",
6844 pData, DataLen, dnDevInst, ResourceID, ulFlags);
6845
6846 return CM_Query_Arbitrator_Free_Data_Ex(pData, DataLen, dnDevInst,
6847 ResourceID, ulFlags, NULL);
6848}
CONFIGRET WINAPI CM_Query_Arbitrator_Free_Data_Ex(_Out_writes_bytes_(DataLen) PVOID pData, _In_ ULONG DataLen, _In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6856
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830

◆ CM_Query_Arbitrator_Free_Data_Ex()

CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Data_Ex ( _Out_writes_bytes_(DataLen) PVOID  pData,
_In_ ULONG  DataLen,
_In_ DEVINST  dnDevInst,
_In_ RESOURCEID  ResourceID,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6856 of file cfgmgr.c.

6863{
6865 HSTRING_TABLE StringTable = NULL;
6866 LPWSTR lpDevInst;
6867 CONFIGRET ret;
6868
6869 TRACE("CM_Query_Arbitrator_Free_Data_Ex(%p %lu %lx %lu 0x%08lx %p)\n",
6870 pData, DataLen, dnDevInst, ResourceID, ulFlags, hMachine);
6871
6872 if (pData == NULL || DataLen == 0)
6873 return CR_INVALID_POINTER;
6874
6875 if (dnDevInst == 0)
6876 return CR_INVALID_DEVINST;
6877
6878 if (ulFlags & ~CM_QUERY_ARBITRATOR_BITS)
6879 return CR_INVALID_FLAG;
6880
6881 if (hMachine != NULL)
6882 {
6883 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6884 if (BindingHandle == NULL)
6885 return CR_FAILURE;
6886
6887 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6888 if (StringTable == 0)
6889 return CR_FAILURE;
6890 }
6891 else
6892 {
6893 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6894 return CR_FAILURE;
6895 }
6896
6897 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
6898 if (lpDevInst == NULL)
6899 return CR_INVALID_DEVNODE;
6900
6902 {
6904 pData,
6905 DataLen,
6906 lpDevInst,
6907 ResourceID,
6908 ulFlags);
6909 }
6911 {
6913 }
6915
6916 return ret;
6917}
DWORD WINAPI PNP_QueryArbitratorFreeData(handle_t hBinding, BYTE *pData, DWORD DataLen, LPWSTR pDeviceID, RESOURCEID ResourceID, DWORD ulFlags)
Definition: rpcserver.c:4967
#define CM_QUERY_ARBITRATOR_BITS
Definition: cfgmgr32.h:832

Referenced by CM_Query_Arbitrator_Free_Data().

◆ CM_Query_Arbitrator_Free_Size()

CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Size ( _Out_ PULONG  pulSize,
_In_ DEVINST  dnDevInst,
_In_ RESOURCEID  ResourceID,
_In_ ULONG  ulFlags 
)

Definition at line 6925 of file cfgmgr.c.

6930{
6931 TRACE("CM_Query_Arbitrator_Free_Size(%p %lu %lx 0x%08lx)\n",
6932 pulSize, dnDevInst,ResourceID, ulFlags);
6933
6934 return CM_Query_Arbitrator_Free_Size_Ex(pulSize, dnDevInst, ResourceID,
6935 ulFlags, NULL);
6936}
CONFIGRET WINAPI CM_Query_Arbitrator_Free_Size_Ex(_Out_ PULONG pulSize, _In_ DEVINST dnDevInst, _In_ RESOURCEID ResourceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6944

◆ CM_Query_Arbitrator_Free_Size_Ex()

CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Size_Ex ( _Out_ PULONG  pulSize,
_In_ DEVINST  dnDevInst,
_In_ RESOURCEID  ResourceID,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 6944 of file cfgmgr.c.

6950{
6952 HSTRING_TABLE StringTable = NULL;
6953 LPWSTR lpDevInst;
6954 CONFIGRET ret;
6955
6956 TRACE("CM_Query_Arbitrator_Free_Size_Ex(%p %lu %lx 0x%08lx %p)\n",
6957 pulSize, dnDevInst,ResourceID, ulFlags, hMachine);
6958
6959 if (pulSize == NULL)
6960 return CR_INVALID_POINTER;
6961
6962 if (dnDevInst == 0)
6963 return CR_INVALID_DEVINST;
6964
6965 if (ulFlags & ~CM_QUERY_ARBITRATOR_BITS)
6966 return CR_INVALID_FLAG;
6967
6968 if (hMachine != NULL)
6969 {
6970 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6971 if (BindingHandle == NULL)
6972 return CR_FAILURE;
6973
6974 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6975 if (StringTable == 0)
6976 return CR_FAILURE;
6977 }
6978 else
6979 {
6980 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6981 return CR_FAILURE;
6982 }
6983
6984 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
6985 if (lpDevInst == NULL)
6986 return CR_INVALID_DEVNODE;
6987
6989 {
6991 pulSize,
6992 lpDevInst,
6993 ResourceID,
6994 ulFlags);
6995 }
6997 {
6999 }
7001
7002 return ret;
7003}
DWORD WINAPI PNP_QueryArbitratorFreeSize(handle_t hBinding, DWORD *pulSize, LPWSTR pDeviceID, RESOURCEID ResourceID, DWORD ulFlags)
Definition: rpcserver.c:4982

Referenced by CM_Query_Arbitrator_Free_Size().

◆ CM_Query_Remove_SubTree()

CMAPI CONFIGRET WINAPI CM_Query_Remove_SubTree ( _In_ DEVINST  dnAncestor,
_In_ ULONG  ulFlags 
)

Definition at line 7013 of file cfgmgr.c.

7016{
7017 TRACE("CM_Query_Remove_SubTree(%lx %lx)\n",
7018 dnAncestor, ulFlags);
7019
7021}

◆ CM_Query_Remove_SubTree_Ex()

CMAPI CONFIGRET WINAPI CM_Query_Remove_SubTree_Ex ( _In_ DEVINST  dnAncestor,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7031 of file cfgmgr.c.

7035{
7036 TRACE("CM_Query_Remove_SubTree_Ex(%lx %lx %p)\n",
7037 dnAncestor, ulFlags, hMachine);
7038
7040}

◆ CM_Query_Resource_Conflict_List()

CMAPI CONFIGRET WINAPI CM_Query_Resource_Conflict_List ( _Out_ PCONFLICT_LIST  pclConflictList,
_In_ DEVINST  dnDevInst,
_In_ RESOURCEID  ResourceID,
_In_reads_bytes_(ResourceLen) PCVOID  ResourceData,
_In_ ULONG  ResourceLen,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

◆ CM_Reenumerate_DevNode()

CMAPI CONFIGRET WINAPI CM_Reenumerate_DevNode ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 7166 of file cfgmgr.c.

7169{
7170 TRACE("CM_Reenumerate_DevNode(%lx %lx)\n",
7171 dnDevInst, ulFlags);
7172
7173 return CM_Reenumerate_DevNode_Ex(dnDevInst, ulFlags, NULL);
7174}
CONFIGRET WINAPI CM_Reenumerate_DevNode_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7181

◆ CM_Reenumerate_DevNode_Ex()

CMAPI CONFIGRET WINAPI CM_Reenumerate_DevNode_Ex ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7181 of file cfgmgr.c.

7185{
7187 HSTRING_TABLE StringTable = NULL;
7188 LPWSTR lpDevInst;
7189 CONFIGRET ret;
7190
7191 FIXME("CM_Reenumerate_DevNode_Ex(%lx %lx %p)\n",
7192 dnDevInst, ulFlags, hMachine);
7193
7194 if (dnDevInst == 0)
7195 return CR_INVALID_DEVNODE;
7196
7197 if (ulFlags & ~CM_REENUMERATE_BITS)
7198 return CR_INVALID_FLAG;
7199
7200 if (hMachine != NULL)
7201 {
7202 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7203 if (BindingHandle == NULL)
7204 return CR_FAILURE;
7205
7206 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
7207 if (StringTable == 0)
7208 return CR_FAILURE;
7209 }
7210 else
7211 {
7212 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
7213 return CR_FAILURE;
7214 }
7215
7216 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
7217 if (lpDevInst == NULL)
7218 return CR_INVALID_DEVNODE;
7219
7221 {
7223 PNP_DEVINST_REENUMERATE,
7224 ulFlags,
7225 lpDevInst,
7226 NULL);
7227 }
7229 {
7231 }
7233
7234 return ret;
7235}
#define CM_REENUMERATE_BITS
Definition: cfgmgr32.h:793

Referenced by CM_Reenumerate_DevNode().

◆ CM_Register_Device_Driver()

CMAPI CONFIGRET WINAPI CM_Register_Device_Driver ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 7243 of file cfgmgr.c.

7246{
7247 TRACE("CM_Register_Device_Driver(%lx 0x%08lx)\n",
7248 dnDevInst, ulFlags);
7249
7250 return CM_Register_Device_Driver_Ex(dnDevInst, ulFlags, NULL);
7251}
CONFIGRET WINAPI CM_Register_Device_Driver_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7259

◆ CM_Register_Device_Driver_Ex()

CMAPI CONFIGRET WINAPI CM_Register_Device_Driver_Ex ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7259 of file cfgmgr.c.

7263{
7265 HSTRING_TABLE StringTable = NULL;
7266 LPWSTR lpDevInst;
7267 CONFIGRET ret;
7268
7269 TRACE("CM_Register_Device_Driver_Ex(%lx 0x%08lx %p)\n",
7270 dnDevInst, ulFlags, hMachine);
7271
7272 if (dnDevInst == 0)
7273 return CR_INVALID_DEVNODE;
7274
7275 if (ulFlags & ~CM_REGISTER_DEVICE_DRIVER_BITS)
7276 return CR_INVALID_FLAG;
7277
7278 if (hMachine != NULL)
7279 {
7280 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7281 if (BindingHandle == NULL)
7282 return CR_FAILURE;
7283
7284 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
7285 if (StringTable == 0)
7286 return CR_FAILURE;
7287 }
7288 else
7289 {
7290 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
7291 return CR_FAILURE;
7292 }
7293
7294 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
7295 if (lpDevInst == NULL)
7296 return CR_INVALID_DEVNODE;
7297
7299 {
7301 lpDevInst,
7302 ulFlags);
7303 }
7305 {
7307 }
7309
7310 return ret;
7311}
DWORD WINAPI PNP_RegisterDriver(handle_t hBinding, LPWSTR pszDeviceID, DWORD ulFlags)
Definition: rpcserver.c:3782
#define CM_REGISTER_DEVICE_DRIVER_BITS
Definition: cfgmgr32.h:798

Referenced by CM_Register_Device_Driver().

◆ CM_Register_Device_Interface_ExA()

CMAPI CONFIGRET WINAPI CM_Register_Device_Interface_ExA ( _In_ DEVINST  dnDevInst,
_In_ LPGUID  InterfaceClassGuid,
_In_opt_ LPCSTR  pszReference,
_Out_writes_ *pulLength LPSTR  pszDeviceInterface,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7365 of file cfgmgr.c.

7373{
7374 LPWSTR pszReferenceW = NULL;
7375 LPWSTR pszDeviceInterfaceW;
7376 ULONG ulLength;
7377 CONFIGRET ret;
7378
7379 TRACE("CM_Register_Device_Interface_ExA(%lx %s %s %p %p %lx %p)\n",
7380 dnDevInst, debugstr_guid(InterfaceClassGuid), debugstr_a(pszReference),
7381 pszDeviceInterface, pulLength, ulFlags, hMachine);
7382
7383 if (pulLength == NULL || pszDeviceInterface == NULL)
7384 return CR_INVALID_POINTER;
7385
7386 if (pszReference != NULL)
7387 {
7388 if (pSetupCaptureAndConvertAnsiArg(pszReference, &pszReferenceW))
7389 return CR_INVALID_DATA;
7390 }
7391
7392 ulLength = *pulLength;
7393
7394 pszDeviceInterfaceW = HeapAlloc(GetProcessHeap(), 0, ulLength * sizeof(WCHAR));
7395 if (pszDeviceInterfaceW == NULL)
7396 {
7398 goto Done;
7399 }
7400
7403 pszReferenceW,
7404 pszDeviceInterfaceW,
7405 &ulLength,
7406 ulFlags,
7407 hMachine);
7408 if (ret == CR_SUCCESS)
7409 {
7411 0,
7412 pszDeviceInterfaceW,
7413 ulLength,
7414 pszDeviceInterface,
7415 *pulLength,
7416 NULL,
7417 NULL) == 0)
7418 ret = CR_FAILURE;
7419 }
7420
7421 *pulLength = ulLength;
7422
7423Done:
7424 if (pszDeviceInterfaceW != NULL)
7425 HeapFree(GetProcessHeap(), 0, pszDeviceInterfaceW);
7426
7427 if (pszReferenceW != NULL)
7428 MyFree(pszReferenceW);
7429
7430 return ret;
7431}
CONFIGRET WINAPI CM_Register_Device_Interface_ExW(_In_ DEVINST dnDevInst, _In_ LPGUID InterfaceClassGuid, _In_opt_ LPCWSTR pszReference, _Out_writes_(*pulLength) LPWSTR pszDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7439

Referenced by CM_Register_Device_InterfaceA().

◆ CM_Register_Device_Interface_ExW()

CMAPI CONFIGRET WINAPI CM_Register_Device_Interface_ExW ( _In_ DEVINST  dnDevInst,
_In_ LPGUID  InterfaceClassGuid,
_In_opt_ LPCWSTR  pszReference,
_Out_writes_ *pulLength LPWSTR  pszDeviceInterface,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7439 of file cfgmgr.c.

7447{
7449 HSTRING_TABLE StringTable = NULL;
7450 LPWSTR lpDevInst;
7451 ULONG ulTransferLength;
7452 CONFIGRET ret;
7453
7454 TRACE("CM_Register_Device_Interface_ExW(%lx %s %s %p %p %lx %p)\n",
7455 dnDevInst, debugstr_guid(InterfaceClassGuid), debugstr_w(pszReference),
7456 pszDeviceInterface, pulLength, ulFlags, hMachine);
7457
7458 if (dnDevInst == 0)
7459 return CR_INVALID_DEVNODE;
7460
7461 if (InterfaceClassGuid == NULL ||
7462 pszDeviceInterface == NULL ||
7463 pulLength == NULL)
7464 return CR_INVALID_POINTER;
7465
7466 if (ulFlags != 0)
7467 return CR_INVALID_FLAG;
7468
7469 if (hMachine != NULL)
7470 {
7471 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7472 if (BindingHandle == NULL)
7473 return CR_FAILURE;
7474
7475 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
7476 if (StringTable == 0)
7477 return CR_FAILURE;
7478 }
7479 else
7480 {
7481 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
7482 return CR_FAILURE;
7483 }
7484
7485 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
7486 if (lpDevInst == NULL)
7487 return CR_INVALID_DEVNODE;
7488
7489 ulTransferLength = *pulLength;
7490
7492 {
7494 lpDevInst,
7496 (LPWSTR)pszReference,
7497 pszDeviceInterface,
7498 pulLength,
7499 &ulTransferLength,
7500 0);
7501 }
7503 {
7505 }
7507
7508 return ret;
7509}
DWORD WINAPI PNP_RegisterDeviceClassAssociation(handle_t hBinding, LPWSTR pszDeviceID, GUID *InterfaceGuid, LPWSTR pszReference, LPWSTR pszSymLink, PNP_RPC_STRING_LEN *pulLength, PNP_RPC_STRING_LEN *pulTransferLen, DWORD ulFlags)
Definition: rpcserver.c:2744

Referenced by CM_Register_Device_Interface_ExA(), and CM_Register_Device_InterfaceW().

◆ CM_Register_Device_InterfaceA()

CMAPI CONFIGRET WINAPI CM_Register_Device_InterfaceA ( _In_ DEVINST  dnDevInst,
_In_ LPGUID  InterfaceClassGuid,
_In_opt_ LPCSTR  pszReference,
_Out_writes_ *pulLength LPSTR  pszDeviceInterface,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 7319 of file cfgmgr.c.

7326{
7327 TRACE("CM_Register_Device_InterfaceA(%lx %s %s %p %p %lx)\n",
7329 pszReference, pszDeviceInterface, pulLength, ulFlags);
7330
7332 pszReference, pszDeviceInterface,
7333 pulLength, ulFlags, NULL);
7334}
CONFIGRET WINAPI CM_Register_Device_Interface_ExA(_In_ DEVINST dnDevInst, _In_ LPGUID InterfaceClassGuid, _In_opt_ LPCSTR pszReference, _Out_writes_(*pulLength) LPSTR pszDeviceInterface, _Inout_ PULONG pulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7365

◆ CM_Register_Device_InterfaceW()

CMAPI CONFIGRET WINAPI CM_Register_Device_InterfaceW ( _In_ DEVINST  dnDevInst,
_In_ LPGUID  InterfaceClassGuid,
_In_opt_ LPCWSTR  pszReference,
_Out_writes_ *pulLength LPWSTR  pszDeviceInterface,
_Inout_ PULONG  pulLength,
_In_ ULONG  ulFlags 
)

Definition at line 7342 of file cfgmgr.c.

7349{
7350 TRACE("CM_Register_Device_InterfaceW(%lx %s %s %p %p %lx)\n",
7352 debugstr_w(pszReference), pszDeviceInterface, pulLength, ulFlags);
7353
7355 pszReference, pszDeviceInterface,
7356 pulLength, ulFlags, NULL);
7357}

◆ CM_Remove_SubTree()

CMAPI CONFIGRET WINAPI CM_Remove_SubTree ( _In_ DEVINST  dnAncestor,
_In_ ULONG  ulFlags 
)

Definition at line 7519 of file cfgmgr.c.

7522{
7523 TRACE("CM_Remove_SubTree(%lx %lx)\n",
7524 dnAncestor, ulFlags);
7525
7527}

◆ CM_Remove_SubTree_Ex()

CMAPI CONFIGRET WINAPI CM_Remove_SubTree_Ex ( _In_ DEVINST  dnAncestor,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7537 of file cfgmgr.c.

7541{
7542 TRACE("CM_Remove_SubTree_Ex(%lx %lx %p)\n",
7543 dnAncestor, ulFlags, hMachine);
7544
7546}

◆ CM_Request_Device_Eject_ExA()

CMAPI CONFIGRET WINAPI CM_Request_Device_Eject_ExA ( _In_ DEVINST  dnDevInst,
_Out_opt_ PPNP_VETO_TYPE  pVetoType,
_Out_writes_opt_(ulNameLength) LPSTR  pszVetoName,
_In_ ULONG  ulNameLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7594 of file cfgmgr.c.

7601{
7602 LPWSTR lpLocalVetoName = NULL;
7603 CONFIGRET ret;
7604
7605 TRACE("CM_Request_Device_Eject_ExA(%lx %p %p %lu %lx %p)\n",
7606 dnDevInst, pVetoType, pszVetoName, ulNameLength, ulFlags, hMachine);
7607
7608 if (ulNameLength != 0)
7609 {
7610 if (pszVetoName == NULL)
7611 return CR_INVALID_POINTER;
7612
7613 lpLocalVetoName = HeapAlloc(GetProcessHeap(), 0, ulNameLength * sizeof(WCHAR));
7614 if (lpLocalVetoName == NULL)
7615 return CR_OUT_OF_MEMORY;
7616 }
7617
7618 ret = CM_Request_Device_Eject_ExW(dnDevInst, pVetoType, lpLocalVetoName,
7619 ulNameLength, ulFlags, hMachine);
7620 if (ret == CR_REMOVE_VETOED && ulNameLength != 0)
7621 {
7623 0,
7624 lpLocalVetoName,
7625 ulNameLength,
7626 pszVetoName,
7627 ulNameLength,
7628 NULL,
7629 NULL) == 0)
7630 ret = CR_FAILURE;
7631 }
7632
7633 HeapFree(GetProcessHeap(), 0, lpLocalVetoName);
7634
7635 return ret;
7636}
CONFIGRET WINAPI CM_Request_Device_Eject_ExW(_In_ DEVINST dnDevInst, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7644

Referenced by CM_Request_Device_EjectA().

◆ CM_Request_Device_Eject_ExW()

CMAPI CONFIGRET WINAPI CM_Request_Device_Eject_ExW ( _In_ DEVINST  dnDevInst,
_Out_opt_ PPNP_VETO_TYPE  pVetoType,
_Out_writes_opt_(ulNameLength) LPWSTR  pszVetoName,
_In_ ULONG  ulNameLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7644 of file cfgmgr.c.

7651{
7653 HSTRING_TABLE StringTable = NULL;
7654 LPWSTR lpDevInst;
7655 CONFIGRET ret;
7656
7657 TRACE("CM_Request_Device_Eject_ExW(%lx %p %p %lu %lx %p)\n",
7658 dnDevInst, pVetoType, pszVetoName, ulNameLength, ulFlags, hMachine);
7659
7660 if (dnDevInst == 0)
7661 return CR_INVALID_DEVNODE;
7662
7663 if (ulFlags != 0)
7664 return CR_INVALID_FLAG;
7665
7666 if (pszVetoName == NULL && ulNameLength != 0)
7667 return CR_INVALID_POINTER;
7668
7669 /* Windows 2003 SP2 ignores pszVetoName when ulNameLength is zero
7670 * and behaves like when pszVetoName is NULL */
7671 if (ulNameLength == 0)
7672 pszVetoName = NULL;
7673
7674 if (hMachine != NULL)
7675 {
7676 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7677 if (BindingHandle == NULL)
7678 return CR_FAILURE;
7679
7680 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
7681 if (StringTable == 0)
7682 return CR_FAILURE;
7683 }
7684 else
7685 {
7686 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
7687 return CR_FAILURE;
7688 }
7689
7690 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
7691 if (lpDevInst == NULL)
7692 return CR_INVALID_DEVNODE;
7693
7695 {
7697 lpDevInst,
7698 pVetoType,
7699 pszVetoName,
7700 ulNameLength,
7701 ulFlags);
7702 }
7704 {
7706 }
7708
7709 return ret;
7710}
DWORD WINAPI PNP_RequestDeviceEject(handle_t hBinding, LPWSTR pszDeviceID, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, DWORD ulNameLength, DWORD ulFlags)
Definition: rpcserver.c:3854

Referenced by CM_Request_Device_Eject_ExA(), and CM_Request_Device_EjectW().

◆ CM_Request_Device_EjectA()

CMAPI CONFIGRET WINAPI CM_Request_Device_EjectA ( _In_ DEVINST  dnDevInst,
_Out_opt_ PPNP_VETO_TYPE  pVetoType,
_Out_writes_opt_(ulNameLength) LPSTR  pszVetoName,
_In_ ULONG  ulNameLength,
_In_ ULONG  ulFlags 
)

Definition at line 7554 of file cfgmgr.c.

7560{
7561 TRACE("CM_Request_Device_EjectA(%lx %p %p %lu %lx)\n",
7562 dnDevInst, pVetoType, pszVetoName, ulNameLength, ulFlags);
7563
7564 return CM_Request_Device_Eject_ExA(dnDevInst, pVetoType, pszVetoName,
7565 ulNameLength, ulFlags, NULL);
7566}
CONFIGRET WINAPI CM_Request_Device_Eject_ExA(_In_ DEVINST dnDevInst, _Out_opt_ PPNP_VETO_TYPE pVetoType, _Out_writes_opt_(ulNameLength) LPSTR pszVetoName, _In_ ULONG ulNameLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7594

◆ CM_Request_Device_EjectW()

CMAPI CONFIGRET WINAPI CM_Request_Device_EjectW ( _In_ DEVINST  dnDevInst,
_Out_opt_ PPNP_VETO_TYPE  pVetoType,
_Out_writes_opt_(ulNameLength) LPWSTR  pszVetoName,
_In_ ULONG  ulNameLength,
_In_ ULONG  ulFlags 
)

Definition at line 7574 of file cfgmgr.c.

7580{
7581 TRACE("CM_Request_Device_EjectW(%lx %p %p %lu %lx)\n",
7582 dnDevInst, pVetoType, pszVetoName, ulNameLength, ulFlags);
7583
7584 return CM_Request_Device_Eject_ExW(dnDevInst, pVetoType, pszVetoName,
7585 ulNameLength, ulFlags, NULL);
7586}

Referenced by SafeRemoveDevice().

◆ CM_Request_Eject_PC()

CMAPI CONFIGRET WINAPI CM_Request_Eject_PC ( VOID  )

Definition at line 7718 of file cfgmgr.c.

7719{
7720 TRACE("CM_Request_Eject_PC()\n");
7721
7723}
CONFIGRET WINAPI CM_Request_Eject_PC_Ex(_In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7731

◆ CM_Request_Eject_PC_Ex()

CMAPI CONFIGRET WINAPI CM_Request_Eject_PC_Ex ( _In_opt_ HMACHINE  hMachine)

Definition at line 7731 of file cfgmgr.c.

7733{
7735 CONFIGRET ret;
7736
7737 TRACE("CM_Request_Eject_PC_Ex(%p)\n", hMachine);
7738
7739 if (hMachine != NULL)
7740 {
7741 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7742 if (BindingHandle == NULL)
7743 return CR_FAILURE;
7744 }
7745 else
7746 {
7748 return CR_FAILURE;
7749 }
7750
7752 {
7754 }
7756 {
7758 }
7760
7761 return ret;
7762}
DWORD WINAPI PNP_RequestEjectPC(handle_t hBinding)
Definition: rpcserver.c:3958

Referenced by CM_Request_Eject_PC().

◆ CM_Restore_DefaultPowerScheme()

CONFIGRET CM_Restore_DefaultPowerScheme ( _In_ CONST GUID SchemeGuid,
_Out_ PDWORD  Error 
)

◆ CM_RestoreAll_DefaultPowerSchemes()

CONFIGRET CM_RestoreAll_DefaultPowerSchemes ( _Out_ PDWORD  Error)

◆ CM_Run_Detection()

CMAPI CONFIGRET WINAPI CM_Run_Detection ( _In_ ULONG  ulFlags)

Definition at line 7770 of file cfgmgr.c.

7772{
7773 TRACE("CM_Run_Detection(%lx)\n", ulFlags);
7774
7775 return CM_Run_Detection_Ex(ulFlags, NULL);
7776}
CONFIGRET WINAPI CM_Run_Detection_Ex(_In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7784

◆ CM_Run_Detection_Ex()

CMAPI CONFIGRET WINAPI CM_Run_Detection_Ex ( _In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7784 of file cfgmgr.c.

7787{
7789 CONFIGRET ret;
7790
7791 TRACE("CM_Run_Detection_Ex(%lx %p)\n",
7792 ulFlags, hMachine);
7793
7794 if (!pSetupIsUserAdmin())
7795 return CR_ACCESS_DENIED;
7796
7797 if (ulFlags & ~CM_DETECT_BITS)
7798 return CR_INVALID_FLAG;
7799
7800 if (hMachine != NULL)
7801 {
7802 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7803 if (BindingHandle == NULL)
7804 return CR_FAILURE;
7805 }
7806 else
7807 {
7809 return CR_FAILURE;
7810 }
7811
7813 {
7815 ulFlags);
7816 }
7818 {
7820 }
7822
7823 return ret;
7824}
CONFIGRET WINAPI PNP_RunDetection(handle_t hBinding, DWORD ulFlags)
Definition: rpcserver.c:4999
#define CM_DETECT_BITS
Definition: cfgmgr32.h:646

Referenced by CM_Run_Detection().

◆ CM_Set_ActiveScheme()

CONFIGRET CM_Set_ActiveScheme ( _In_ CONST GUID SchemeGuid,
_Out_ PDWORD  Error 
)

◆ CM_Set_Class_Registry_PropertyA()

CMAPI CONFIGRET WINAPI CM_Set_Class_Registry_PropertyA ( _In_ LPGUID  ClassGuid,
_In_ ULONG  ulProperty,
_In_reads_bytes_opt_(ulLength) PCVOID  Buffer,
_In_ ULONG  ulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7832 of file cfgmgr.c.

7839{
7841 ULONG ulType;
7842 CONFIGRET ret;
7843
7844 TRACE("CM_Set_Class_Registry_PropertyA(%p %lx %p %lu %lx %p)\n",
7845 ClassGuid, ulProperty, Buffer, ulLength, ulFlags, hMachine);
7846
7847 if (ClassGuid == NULL)
7848 return CR_INVALID_POINTER;
7849
7850 if ((Buffer == NULL) && (ulLength != 0))
7851 return CR_INVALID_POINTER;
7852
7853 if (ulFlags != 0)
7854 return CR_INVALID_FLAG;
7855
7856 if (Buffer == NULL)
7857 {
7859 ulProperty,
7860 Buffer,
7861 ulLength,
7862 ulFlags,
7863 hMachine);
7864 }
7865 else
7866 {
7867 /* Get property type */
7868 ulType = GetRegistryPropertyType(ulProperty);
7869
7870 /* Allocate buffer if needed */
7871 if ((ulType == REG_SZ) || (ulType == REG_MULTI_SZ))
7872 {
7873 lpBuffer = MyMalloc(ulLength * sizeof(WCHAR));
7874 if (lpBuffer == NULL)
7875 {
7877 }
7878 else
7879 {
7881 ulLength, lpBuffer, ulLength))
7882 {
7884 ret = CR_FAILURE;
7885 }
7886 else
7887 {
7889 ulProperty,
7890 lpBuffer,
7891 ulLength * sizeof(WCHAR),
7892 ulFlags,
7893 hMachine);
7895 }
7896 }
7897 }
7898 else
7899 {
7901 ulProperty,
7902 Buffer,
7903 ulLength,
7904 ulFlags,
7905 hMachine);
7906 }
7907
7908 }
7909
7910 return ret;
7911}
CONFIGRET WINAPI CM_Set_Class_Registry_PropertyW(_In_ LPGUID ClassGuid, _In_ ULONG ulProperty, _In_reads_bytes_opt_(ulLength) PCVOID Buffer, _In_ ULONG ulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7919
static ULONG GetRegistryPropertyType(_In_ ULONG ulProperty)
Definition: cfgmgr.c:150
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
Definition: db.cpp:175
#define MultiByteToWideChar
Definition: compat.h:110
_In_z_ PCWSTR _In_ ULONG ulType
Definition: ntuser.h:43

Referenced by SetupDiSetClassRegistryPropertyA().

◆ CM_Set_Class_Registry_PropertyW()

CMAPI CONFIGRET WINAPI CM_Set_Class_Registry_PropertyW ( _In_ LPGUID  ClassGuid,
_In_ ULONG  ulProperty,
_In_reads_bytes_opt_(ulLength) PCVOID  Buffer,
_In_ ULONG  ulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 7919 of file cfgmgr.c.

7926{
7928 WCHAR szGuidString[PNP_MAX_GUID_STRING_LEN + 1];
7929 ULONG ulType = 0;
7930 PSECURITY_DESCRIPTOR pSecurityDescriptor = NULL;
7931 ULONG SecurityDescriptorSize = 0;
7932 CONFIGRET ret;
7933
7934 TRACE("CM_Set_Class_Registry_PropertyW(%p %lx %p %lu %lx %p)\n",
7935 ClassGuid, ulProperty, Buffer, ulLength, ulFlags, hMachine);
7936
7937 if (ClassGuid == NULL)
7938 return CR_INVALID_POINTER;
7939
7940 if ((Buffer == NULL) && (ulLength != 0))
7941 return CR_INVALID_POINTER;
7942
7943 if (ulFlags != 0)
7944 return CR_INVALID_FLAG;
7945
7946 if (pSetupStringFromGuid(ClassGuid,
7947 szGuidString,
7949 return CR_INVALID_DATA;
7950
7951 if ((ulProperty < CM_CRP_MIN) || (ulProperty > CM_CRP_MAX))
7952 return CR_INVALID_PROPERTY;
7953
7954 if (hMachine != NULL)
7955 {
7956 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7957 if (BindingHandle == NULL)
7958 return CR_FAILURE;
7959 }
7960 else
7961 {
7963 return CR_FAILURE;
7964 }
7965
7966 ulType = GetRegistryPropertyType(ulProperty);
7967 if ((ulType == REG_DWORD) && (ulLength != sizeof(DWORD)))
7968 return CR_INVALID_DATA;
7969
7970 if (ulProperty == CM_CRP_SECURITY_SDS)
7971 {
7972 if (ulLength != 0)
7973 {
7976 &pSecurityDescriptor,
7977 &SecurityDescriptorSize))
7978 {
7979 ERR("ConvertStringSecurityDescriptorToSecurityDescriptorW() failed (Error %lu)\n", GetLastError());
7980 return CR_INVALID_DATA;
7981 }
7982
7983 Buffer = (PCVOID)pSecurityDescriptor;
7984 ulLength = SecurityDescriptorSize;
7985 }
7986
7987 ulProperty = CM_CRP_SECURITY;
7989 }
7990
7992 {
7994 szGuidString,
7995 ulProperty,
7996 ulType,
7997 (LPBYTE)Buffer,
7998 ulLength,
7999 ulFlags);
8000 }
8002 {
8004 }
8006
8007 if (pSecurityDescriptor)
8008 LocalFree(pSecurityDescriptor);
8009
8010 return ret;
8011}
DWORD WINAPI PNP_SetClassRegProp(handle_t hBinding, LPWSTR pszClassGuid, DWORD ulProperty, DWORD ulDataType, BYTE *Buffer, PNP_PROP_SIZE ulLength, DWORD ulFlags)
Definition: rpcserver.c:2901
#define ERR(fmt,...)
Definition: precomp.h:57
#define CM_CRP_MAX
Definition: cfgmgr32.h:733
#define CM_CRP_SECURITY_SDS
Definition: cfgmgr32.h:708
#define CM_CRP_MIN
Definition: cfgmgr32.h:731
#define CM_CRP_SECURITY
Definition: cfgmgr32.h:706
CONST VOID * PCVOID
Definition: cfgmgr32.h:44
BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorW(LPCWSTR StringSecurityDescriptor, DWORD StringSDRevision, PSECURITY_DESCRIPTOR *SecurityDescriptor, PULONG SecurityDescriptorSize)
Definition: security.c:3062
DWORD WINAPI pSetupStringFromGuid(LPGUID lpGUID, PWSTR pString, DWORD dwStringLen)
Definition: misc.c:1775
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
#define REG_BINARY
Definition: nt_native.h:1496
const unsigned long PNP_MAX_GUID_STRING_LEN
Definition: pnp.idl:12
#define REG_DWORD
Definition: sdbapi.c:596
#define SDDL_REVISION_1
Definition: sddl.h:30
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

Referenced by CM_Set_Class_Registry_PropertyA(), and SetupDiSetClassRegistryPropertyW().

◆ CM_Set_DevNode_Problem()

CMAPI CONFIGRET WINAPI CM_Set_DevNode_Problem ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProblem,
_In_ ULONG  ulFlags 
)

Definition at line 8019 of file cfgmgr.c.

8023{
8024 TRACE("CM_Set_DevNode_Problem(%lx %lx %lx)\n",
8025 dnDevInst, ulProblem, ulFlags);
8026
8027 return CM_Set_DevNode_Problem_Ex(dnDevInst, ulProblem, ulFlags, NULL);
8028}
CONFIGRET WINAPI CM_Set_DevNode_Problem_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulProblem, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8036

Referenced by SetFailedInstall().

◆ CM_Set_DevNode_Problem_Ex()

CMAPI CONFIGRET WINAPI CM_Set_DevNode_Problem_Ex ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProblem,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8036 of file cfgmgr.c.

8041{
8043 HSTRING_TABLE StringTable = NULL;
8044 LPWSTR lpDevInst;
8045 CONFIGRET ret;
8046
8047 TRACE("CM_Set_DevNode_Problem_Ex(%lx %lx %lx %p)\n",
8048 dnDevInst, ulProblem, ulFlags, hMachine);
8049
8050 if (dnDevInst == 0)
8051 return CR_INVALID_DEVNODE;
8052
8053 if (ulFlags & ~CM_SET_DEVNODE_PROBLEM_BITS)
8054 return CR_INVALID_FLAG;
8055
8056 if (hMachine != NULL)
8057 {
8058 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8059 if (BindingHandle == NULL)
8060 return CR_FAILURE;
8061
8062 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
8063 if (StringTable == 0)
8064 return CR_FAILURE;
8065 }
8066 else
8067 {
8068 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
8069 return CR_FAILURE;
8070 }
8071
8072 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
8073 if (lpDevInst == NULL)
8074 return CR_INVALID_DEVNODE;
8075
8077 {
8079 lpDevInst,
8080 ulProblem,
8081 ulFlags);
8082 }
8084 {
8086 }
8088
8089 return ret;
8090}
DWORD WINAPI PNP_SetDeviceProblem(handle_t hBinding, LPWSTR pDeviceID, DWORD ulProblem, DWORD ulFlags)
Definition: rpcserver.c:3537
#define CM_SET_DEVNODE_PROBLEM_BITS
Definition: cfgmgr32.h:808

Referenced by CM_Set_DevNode_Problem().

◆ CM_Set_DevNode_Registry_Property_ExA()

CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExA ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProperty,
_In_reads_bytes_opt_(ulLength) PCVOID  Buffer,
_In_ ULONG  ulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8140 of file cfgmgr.c.

8147{
8150 ULONG ulType;
8151
8152 FIXME("CM_Set_DevNode_Registry_Property_ExA(%lx %lu %p %lx %lx %p)\n",
8153 dnDevInst, ulProperty, Buffer, ulLength, ulFlags, hMachine);
8154
8155 if (Buffer == NULL && ulLength != 0)
8156 return CR_INVALID_POINTER;
8157
8158 if (ulProperty < CM_DRP_MIN || ulProperty > CM_DRP_MAX)
8159 return CR_INVALID_PROPERTY;
8160
8161 if (Buffer == NULL)
8162 {
8164 ulProperty,
8165 NULL,
8166 0,
8167 ulFlags,
8168 hMachine);
8169 }
8170 else
8171 {
8172 /* Get property type */
8173 ulType = GetRegistryPropertyType(ulProperty);
8174
8175 /* Allocate buffer if needed */
8176 if (ulType == REG_SZ ||
8178 {
8179 lpBuffer = MyMalloc(ulLength * sizeof(WCHAR));
8180 if (lpBuffer == NULL)
8181 {
8183 }
8184 else
8185 {
8187 ulLength, lpBuffer, ulLength))
8188 {
8190 ret = CR_FAILURE;
8191 }
8192 else
8193 {
8195 ulProperty,
8196 lpBuffer,
8197 ulLength * sizeof(WCHAR),
8198 ulFlags,
8199 hMachine);
8201 }
8202 }
8203 }
8204 else
8205 {
8207 ulProperty,
8208 Buffer,
8209 ulLength,
8210 ulFlags,
8211 hMachine);
8212 }
8213
8215 }
8216
8217 return ret;
8218}
CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExW(_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _In_reads_bytes_opt_(ulLength) PCVOID Buffer, _In_ ULONG ulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8226

Referenced by CM_Set_DevNode_Registry_PropertyA().

◆ CM_Set_DevNode_Registry_Property_ExW()

CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExW ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProperty,
_In_reads_bytes_opt_(ulLength) PCVOID  Buffer,
_In_ ULONG  ulLength,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8226 of file cfgmgr.c.

8233{
8235 HSTRING_TABLE StringTable = NULL;
8236 LPWSTR lpDevInst;
8237 ULONG ulType;
8238 CONFIGRET ret;
8239
8240 TRACE("CM_Set_DevNode_Registry_Property_ExW(%lx %lu %p %lx %lx %p)\n",
8241 dnDevInst, ulProperty, Buffer, ulLength, ulFlags, hMachine);
8242
8243 if (dnDevInst == 0)
8244 return CR_INVALID_DEVNODE;
8245
8246 if (ulProperty < CM_DRP_MIN || ulProperty > CM_DRP_MAX)
8247 return CR_INVALID_PROPERTY;
8248
8249 if (Buffer != NULL && ulLength == 0)
8250 return CR_INVALID_POINTER;
8251
8252 if (ulFlags != 0)
8253 return CR_INVALID_FLAG;
8254
8255 if (hMachine != NULL)
8256 {
8257 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8258 if (BindingHandle == NULL)
8259 return CR_FAILURE;
8260
8261 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
8262 if (StringTable == 0)
8263 return CR_FAILURE;
8264 }
8265 else
8266 {
8267 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
8268 return CR_FAILURE;
8269 }
8270
8271 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
8272 if (lpDevInst == NULL)
8273 return CR_INVALID_DEVNODE;
8274
8275 /* Get property type */
8276 ulType = GetRegistryPropertyType(ulProperty);
8277
8279 {
8281 lpDevInst,
8282 ulProperty,
8283 ulType,
8284 (BYTE *)Buffer,
8285 ulLength,
8286 ulFlags);
8287 }
8289 {
8291 }
8293
8294 return ret;
8295}
DWORD WINAPI PNP_SetDeviceRegProp(handle_t hBinding, LPWSTR pDeviceId, DWORD ulProperty, DWORD ulDataType, BYTE *Buffer, PNP_PROP_SIZE ulLength, DWORD ulFlags)
Definition: rpcserver.c:2160
unsigned char BYTE
Definition: xxhash.c:193

Referenced by CM_Set_DevNode_Registry_Property_ExA(), and CM_Set_DevNode_Registry_PropertyW().

◆ CM_Set_DevNode_Registry_PropertyA()

CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_PropertyA ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProperty,
_In_reads_bytes_opt_(ulLength) PCVOID  Buffer,
_In_ ULONG  ulLength,
_In_ ULONG  ulFlags 
)

Definition at line 8098 of file cfgmgr.c.

8104{
8105 TRACE("CM_Set_DevNode_Registry_PropertyA(%lx %lu %p %lx %lx)\n",
8106 dnDevInst, ulProperty, Buffer, ulLength, ulFlags);
8107
8108 return CM_Set_DevNode_Registry_Property_ExA(dnDevInst, ulProperty,
8109 Buffer, ulLength,
8110 ulFlags, NULL);
8111}
CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExA(_In_ DEVINST dnDevInst, _In_ ULONG ulProperty, _In_reads_bytes_opt_(ulLength) PCVOID Buffer, _In_ ULONG ulLength, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8140

◆ CM_Set_DevNode_Registry_PropertyW()

CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_PropertyW ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulProperty,
_In_reads_bytes_opt_(ulLength) PCVOID  Buffer,
_In_ ULONG  ulLength,
_In_ ULONG  ulFlags 
)

Definition at line 8119 of file cfgmgr.c.

8125{
8126 TRACE("CM_Set_DevNode_Registry_PropertyW(%lx %lu %p %lx %lx)\n",
8127 dnDevInst, ulProperty, Buffer, ulLength, ulFlags);
8128
8129 return CM_Set_DevNode_Registry_Property_ExW(dnDevInst, ulProperty,
8130 Buffer, ulLength,
8131 ulFlags, NULL);
8132}

◆ CM_Set_HW_Prof()

CMAPI CONFIGRET WINAPI CM_Set_HW_Prof ( _In_ ULONG  ulHardwareProfile,
_In_ ULONG  ulFlags 
)

Definition at line 8303 of file cfgmgr.c.

8306{
8307 TRACE("CM_Set_HW_Prof(%lu %lx)\n",
8308 ulHardwareProfile, ulFlags);
8309
8310 return CM_Set_HW_Prof_Ex(ulHardwareProfile, ulFlags, NULL);
8311}
CONFIGRET WINAPI CM_Set_HW_Prof_Ex(_In_ ULONG ulHardwareProfile, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8319

◆ CM_Set_HW_Prof_Ex()

CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_Ex ( _In_ ULONG  ulHardwareProfile,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8319 of file cfgmgr.c.

8323{
8325 CONFIGRET ret;
8326
8327 TRACE("CM_Set_HW_Prof_Ex(%lu %lx %p)\n",
8328 ulHardwareProfile, ulFlags, hMachine);
8329
8330 if (!pSetupIsUserAdmin())
8331 return CR_ACCESS_DENIED;
8332
8333 if (ulFlags != 0)
8334 return CR_INVALID_FLAG;
8335
8336 if (hMachine != NULL)
8337 {
8338 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8339 if (BindingHandle == NULL)
8340 return CR_FAILURE;
8341 }
8342 else
8343 {
8345 return CR_FAILURE;
8346 }
8347
8349 {
8350 ret = PNP_SetHwProf(BindingHandle, ulHardwareProfile, ulFlags);
8351 }
8353 {
8355 }
8357
8358 return ret;
8359}
DWORD WINAPI PNP_SetHwProf(handle_t hBinding, DWORD ulHardwareProfile, DWORD ulFlags)
Definition: rpcserver.c:4955

Referenced by CM_Set_HW_Prof().

◆ CM_Set_HW_Prof_Flags_ExA()

CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExA ( _In_ DEVINSTID_A  szDevInstName,
_In_ ULONG  ulConfig,
_In_ ULONG  ulValue,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8405 of file cfgmgr.c.

8411{
8412 DEVINSTID_W pszDevIdW = NULL;
8414
8415 TRACE("CM_Set_HW_Prof_Flags_ExA(%s %lu %lu %lx %p)\n",
8416 debugstr_a(szDevInstName), ulConfig, ulValue, ulFlags, hMachine);
8417
8418 if (szDevInstName != NULL)
8419 {
8420 if (pSetupCaptureAndConvertAnsiArg(szDevInstName, &pszDevIdW))
8421 return CR_INVALID_DEVICE_ID;
8422 }
8423
8424 ret = CM_Set_HW_Prof_Flags_ExW(pszDevIdW, ulConfig, ulValue,
8425 ulFlags, hMachine);
8426
8427 if (pszDevIdW != NULL)
8428 MyFree(pszDevIdW);
8429
8430 return ret;
8431}
CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExW(_In_ DEVINSTID_W szDevInstName, _In_ ULONG ulConfig, _In_ ULONG ulValue, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8439

Referenced by CM_Set_HW_Prof_FlagsA().

◆ CM_Set_HW_Prof_Flags_ExW()

CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExW ( _In_ DEVINSTID_W  szDevInstName,
_In_ ULONG  ulConfig,
_In_ ULONG  ulValue,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8439 of file cfgmgr.c.

8445{
8447 CONFIGRET ret;
8448
8449 FIXME("CM_Set_HW_Prof_Flags_ExW(%s %lu %lu %lx %p)\n",
8450 debugstr_w(szDevInstName), ulConfig, ulValue, ulFlags, hMachine);
8451
8452 if (szDevInstName == NULL)
8453 return CR_INVALID_POINTER;
8454
8455 if (ulFlags & ~ CM_SET_HW_PROF_FLAGS_BITS)
8456 return CR_INVALID_FLAG;
8457
8458 /* FIXME: Check whether szDevInstName is valid */
8459
8460 if (hMachine != NULL)
8461 {
8462 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8463 if (BindingHandle == NULL)
8464 return CR_FAILURE;
8465 }
8466 else
8467 {
8469 return CR_FAILURE;
8470 }
8471
8473 {
8474 ret = PNP_HwProfFlags(BindingHandle, PNP_SET_HWPROFFLAGS, szDevInstName,
8475 ulConfig, &ulValue, NULL, NULL, 0, 0);
8476 }
8478 {
8480 }
8482
8483 return ret;
8484}
#define CM_SET_HW_PROF_FLAGS_BITS
Definition: cfgmgr32.h:816

Referenced by CM_Set_HW_Prof_Flags_ExA(), and CM_Set_HW_Prof_FlagsW().

◆ CM_Set_HW_Prof_FlagsA()

CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_FlagsA ( _In_ DEVINSTID_A  szDevInstName,
_In_ ULONG  ulConfig,
_In_ ULONG  ulValue,
_In_ ULONG  ulFlags 
)

Definition at line 8367 of file cfgmgr.c.

8372{
8373 TRACE("CM_Set_HW_Prof_FlagsA(%s %lu %lu %lx)\n",
8374 debugstr_a(szDevInstName), ulConfig, ulValue, ulFlags);
8375
8376 return CM_Set_HW_Prof_Flags_ExA(szDevInstName, ulConfig, ulValue,
8377 ulFlags, NULL);
8378}
CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExA(_In_ DEVINSTID_A szDevInstName, _In_ ULONG ulConfig, _In_ ULONG ulValue, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8405

◆ CM_Set_HW_Prof_FlagsW()

CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_FlagsW ( _In_ DEVINSTID_W  szDevInstName,
_In_ ULONG  ulConfig,
_In_ ULONG  ulValue,
_In_ ULONG  ulFlags 
)

Definition at line 8386 of file cfgmgr.c.

8391{
8392 TRACE("CM_Set_HW_Prof_FlagsW(%s %lu %lu %lx)\n",
8393 debugstr_w(szDevInstName), ulConfig, ulValue, ulFlags);
8394
8395 return CM_Set_HW_Prof_Flags_ExW(szDevInstName, ulConfig, ulValue,
8396 ulFlags, NULL);
8397}

◆ CM_Setup_DevNode()

CMAPI CONFIGRET WINAPI CM_Setup_DevNode ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags 
)

Definition at line 8492 of file cfgmgr.c.

8495{
8496 TRACE("CM_Setup_DevNode(%lx %lx)\n",
8497 dnDevInst, ulFlags);
8498
8499 return CM_Setup_DevNode_Ex(dnDevInst, ulFlags, NULL);
8500}
CONFIGRET WINAPI CM_Setup_DevNode_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8508

◆ CM_Setup_DevNode_Ex()

CMAPI CONFIGRET WINAPI CM_Setup_DevNode_Ex ( _In_ DEVINST  dnDevInst,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8508 of file cfgmgr.c.

8512{
8514 HSTRING_TABLE StringTable = NULL;
8515 LPWSTR lpDevInst;
8516 CONFIGRET ret;
8517
8518 FIXME("CM_Setup_DevNode_Ex(%lx %lx %p)\n",
8519 dnDevInst, ulFlags, hMachine);
8520
8521 if (!pSetupIsUserAdmin())
8522 return CR_ACCESS_DENIED;
8523
8524 if (dnDevInst == 0)
8525 return CR_INVALID_DEVNODE;
8526
8527 if (ulFlags & ~CM_SETUP_BITS)
8528 return CR_INVALID_FLAG;
8529
8530 if (hMachine != NULL)
8531 {
8532 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8533 if (BindingHandle == NULL)
8534 return CR_FAILURE;
8535
8536 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
8537 if (StringTable == 0)
8538 return CR_FAILURE;
8539 }
8540 else
8541 {
8542 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
8543 return CR_FAILURE;
8544 }
8545
8546 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
8547 if (lpDevInst == NULL)
8548 return CR_INVALID_DEVNODE;
8549
8551 {
8553 PNP_DEVINST_SETUP,
8554 ulFlags,
8555 lpDevInst,
8556 NULL);
8557 }
8559 {
8561 }
8563
8564 return ret;
8565}
#define CM_SETUP_BITS
Definition: cfgmgr32.h:828

Referenced by CM_Setup_DevNode().

◆ CM_Test_Range_Available()

CMAPI CONFIGRET WINAPI CM_Test_Range_Available ( _In_ DWORDLONG  ullStartValue,
_In_ DWORDLONG  ullEndValue,
_In_ RANGE_LIST  rlh,
_In_ ULONG  ulFlags 
)

Definition at line 8573 of file cfgmgr.c.

8578{
8579 PINTERNAL_RANGE_LIST pRangeList;
8580 PINTERNAL_RANGE pRange;
8581 PLIST_ENTRY ListEntry;
8583
8584 FIXME("CM_Test_Range_Available(%I64u %I64u %p %lx)\n",
8585 ullStartValue, ullEndValue, rlh, ulFlags);
8586
8587 pRangeList = (PINTERNAL_RANGE_LIST)rlh;
8588
8589 if (!IsValidRangeList(pRangeList))
8590 return CR_INVALID_RANGE_LIST;
8591
8592 if (ulFlags != 0)
8593 return CR_INVALID_FLAG;
8594
8595 if (ullStartValue > ullEndValue)
8596 return CR_INVALID_RANGE;
8597
8598 /* Lock the range list */
8599 WaitForSingleObject(pRangeList->hMutex, INFINITE);
8600
8601 /* Check the ranges */
8602 ListEntry = &pRangeList->ListHead;
8603 while (ListEntry->Flink == &pRangeList->ListHead)
8604 {
8605 pRange = CONTAINING_RECORD(ListEntry, INTERNAL_RANGE, ListEntry);
8606
8607 /* Check if the start value is within the current range */
8608 if ((ullStartValue >= pRange->ullStart) && (ullStartValue <= pRange->ullEnd))
8609 {
8610 ret = CR_FAILURE;
8611 break;
8612 }
8613
8614 /* Check if the end value is within the current range */
8615 if ((ullEndValue >= pRange->ullStart) && (ullEndValue <= pRange->ullEnd))
8616 {
8617 ret = CR_FAILURE;
8618 break;
8619 }
8620
8621 /* Check if the current range lies inside of the start-end interval */
8622 if ((ullStartValue <= pRange->ullStart) && (ullEndValue >= pRange->ullEnd))
8623 {
8624 ret = CR_FAILURE;
8625 break;
8626 }
8627
8628 ListEntry = ListEntry->Flink;
8629 }
8630
8631 /* Unlock the range list */
8632 ReleaseMutex(pRangeList->hMutex);
8633
8634 return ret;
8635}

◆ CM_Uninstall_DevNode()

CMAPI CONFIGRET WINAPI CM_Uninstall_DevNode ( _In_ DEVINST  dnPhantom,
_In_ ULONG  ulFlags 
)

Definition at line 8643 of file cfgmgr.c.

8646{
8647 TRACE("CM_Uninstall_DevNode(%lx %lx)\n",
8648 dnPhantom, ulFlags);
8649
8650 return CM_Uninstall_DevNode_Ex(dnPhantom, ulFlags, NULL);
8651}
CONFIGRET WINAPI CM_Uninstall_DevNode_Ex(_In_ DEVINST dnPhantom, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8659

◆ CM_Uninstall_DevNode_Ex()

CMAPI CONFIGRET WINAPI CM_Uninstall_DevNode_Ex ( _In_ DEVINST  dnPhantom,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8659 of file cfgmgr.c.

8663{
8665 HSTRING_TABLE StringTable = NULL;
8666 LPWSTR lpDevInst;
8667 CONFIGRET ret;
8668
8669 TRACE("CM_Uninstall_DevNode_Ex(%lx %lx %p)\n",
8670 dnPhantom, ulFlags, hMachine);
8671
8672 if (dnPhantom == 0)
8673 return CR_INVALID_DEVNODE;
8674
8675 if (ulFlags != 0)
8676 return CR_INVALID_FLAG;
8677
8678 if (hMachine != NULL)
8679 {
8680 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8681 if (BindingHandle == NULL)
8682 return CR_FAILURE;
8683
8684 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
8685 if (StringTable == 0)
8686 return CR_FAILURE;
8687 }
8688 else
8689 {
8690 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
8691 return CR_FAILURE;
8692 }
8693
8694 lpDevInst = pSetupStringTableStringFromId(StringTable, dnPhantom);
8695 if (lpDevInst == NULL)
8696 return CR_INVALID_DEVNODE;
8697
8699 {
8701 lpDevInst,
8702 ulFlags);
8703 }
8705 {
8707 }
8709
8710 return ret;
8711}
DWORD WINAPI PNP_UninstallDevInst(handle_t hBinding, LPWSTR pDeviceID, DWORD ulFlags)
Definition: rpcserver.c:3620

Referenced by CM_Uninstall_DevNode().

◆ CM_Unregister_Device_Interface_ExA()

CMAPI CONFIGRET WINAPI CM_Unregister_Device_Interface_ExA ( _In_ LPCSTR  pszDeviceInterface,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8753 of file cfgmgr.c.

8757{
8758 LPWSTR pszDeviceInterfaceW = NULL;
8759 CONFIGRET ret;
8760
8761 TRACE("CM_Unregister_Device_Interface_ExA(%s %lx %p)\n",
8762 debugstr_a(pszDeviceInterface), ulFlags, hMachine);
8763
8764 if (pszDeviceInterface == NULL)
8765 return CR_INVALID_POINTER;
8766
8767 if (pSetupCaptureAndConvertAnsiArg(pszDeviceInterface, &pszDeviceInterfaceW))
8768 return CR_INVALID_DATA;
8769
8770 ret = CM_Unregister_Device_Interface_ExW(pszDeviceInterfaceW,
8771 ulFlags, hMachine);
8772
8773 if (pszDeviceInterfaceW != NULL)
8774 MyFree(pszDeviceInterfaceW);
8775
8776 return ret;
8777}
CONFIGRET WINAPI CM_Unregister_Device_Interface_ExW(_In_ LPCWSTR pszDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8785

Referenced by CM_Unregister_Device_InterfaceA().

◆ CM_Unregister_Device_Interface_ExW()

CMAPI CONFIGRET WINAPI CM_Unregister_Device_Interface_ExW ( _In_ LPCWSTR  pszDeviceInterface,
_In_ ULONG  ulFlags,
_In_opt_ HMACHINE  hMachine 
)

Definition at line 8785 of file cfgmgr.c.

8789{
8791 CONFIGRET ret;
8792
8793 TRACE("CM_Unregister_Device_Interface_ExW(%s %lx %p)\n",
8794 debugstr_w(pszDeviceInterface), ulFlags, hMachine);
8795
8796 if (pszDeviceInterface == NULL)
8797 return CR_INVALID_POINTER;
8798
8799 if (ulFlags != 0)
8800 return CR_INVALID_FLAG;
8801
8802 if (hMachine != NULL)
8803 {
8804 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8805 if (BindingHandle == NULL)
8806 return CR_FAILURE;
8807 }
8808 else
8809 {
8811 return CR_FAILURE;
8812 }
8813
8815 {
8817 (LPWSTR)pszDeviceInterface,
8818 ulFlags);
8819 }
8821 {
8823 }
8825
8826 return ret;
8827}
DWORD WINAPI PNP_UnregisterDeviceClassAssociation(handle_t hBinding, LPWSTR pszInterfaceDevice, DWORD ulFlags)
Definition: rpcserver.c:2762

Referenced by CM_Unregister_Device_Interface_ExA(), and CM_Unregister_Device_InterfaceW().

◆ CM_Unregister_Device_InterfaceA()

CMAPI CONFIGRET WINAPI CM_Unregister_Device_InterfaceA ( _In_ LPCSTR  pszDeviceInterface,
_In_ ULONG  ulFlags 
)

Definition at line 8719 of file cfgmgr.c.

8722{
8723 TRACE("CM_Unregister_Device_InterfaceA(%s %lx)\n",
8724 debugstr_a(pszDeviceInterface), ulFlags);
8725
8726 return CM_Unregister_Device_Interface_ExA(pszDeviceInterface,
8727 ulFlags, NULL);
8728}
CONFIGRET WINAPI CM_Unregister_Device_Interface_ExA(_In_ LPCSTR pszDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8753

◆ CM_Unregister_Device_InterfaceW()

CMAPI CONFIGRET WINAPI CM_Unregister_Device_InterfaceW ( _In_ LPCWSTR  pszDeviceInterface,
_In_ ULONG  ulFlags 
)

Definition at line 8736 of file cfgmgr.c.

8739{
8740 TRACE("CM_Unregister_Device_InterfaceW(%s %lx)\n",
8741 debugstr_w(pszDeviceInterface), ulFlags);
8742
8743 return CM_Unregister_Device_Interface_ExW(pszDeviceInterface,
8744 ulFlags, NULL);
8745}

◆ CM_Write_UserPowerKey()

CONFIGRET CM_Write_UserPowerKey ( _In_opt_ CONST GUID SchemeGuid,
_In_opt_ CONST GUID SubGroupOfPowerSettingsGuid,
_In_opt_ CONST GUID PowerSettingGuid,
_In_ ULONG  AccessFlags,
_In_ ULONG  Type,
_In_reads_bytes_(BufferSize) UCHAR Buffer,
_In_ DWORD  BufferSize,
_Out_ PDWORD  Error 
)

◆ CMP_WaitNoPendingInstallEvents()

CMAPI DWORD WINAPI CMP_WaitNoPendingInstallEvents ( _In_ DWORD  dwTimeout)

Definition at line 831 of file cfgmgr.c.

833{
835 DWORD ret;
836
837 TRACE("CMP_WaitNoPendingInstallEvents(%lu)\n", dwTimeout);
838
839 hEvent = OpenEventW(SYNCHRONIZE, FALSE, L"Global\\PnP_No_Pending_Install_Events");
840 if (hEvent == NULL)
841 return WAIT_FAILED;
842
845 return ret;
846}
static HANDLE hEvent
Definition: comm.c:54
#define SYNCHRONIZE
Definition: nt_native.h:61
HANDLE WINAPI DECLSPEC_HOTPATCH OpenEventW(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName)
Definition: synch.c:682
#define WAIT_FAILED
Definition: winbase.h:440
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
Definition: wincrypt.h:6081

Referenced by CommonInstall().