ReactOS 0.4.16-dev-1401-gf1332c7
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:4288
#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
return ret
Definition: mutex.c:146
#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
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:3754
#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
#define L(x)
Definition: resources.c:13
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#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:3253
#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:3797

◆ 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:3669

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:3493

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:4473
#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 LPWSTR pszDeviceInterfaceW = NULL;
4287 LPWSTR pszAliasDeviceInterfaceW = NULL;
4289
4290 TRACE("CM_Get_Device_Interface_Alias_ExA(%p %p %p %p %lx %p)\n",
4291 pszDeviceInterface, AliasInterfaceGuid,
4292 pszAliasDeviceInterface, pulLength, ulFlags, hMachine);
4293
4294 if (pszDeviceInterface == NULL ||
4295 AliasInterfaceGuid == NULL ||
4296 pszAliasDeviceInterface == NULL ||
4297 pulLength == NULL)
4298 return CR_INVALID_POINTER;
4299
4300 if (ulFlags != 0)
4301 return CR_INVALID_FLAG;
4302
4303 if (!pSetupCaptureAndConvertAnsiArg(pszDeviceInterface, &pszDeviceInterfaceW))
4304 return CR_INVALID_POINTER;
4305
4306 pszAliasDeviceInterfaceW = MyMalloc(*pulLength * sizeof(WCHAR));
4307 if (pszAliasDeviceInterfaceW == NULL)
4308 {
4310 goto Done;
4311 }
4312
4313 ret = CM_Get_Device_Interface_Alias_ExW(pszDeviceInterfaceW,
4314 AliasInterfaceGuid,
4315 pszAliasDeviceInterfaceW,
4316 pulLength,
4317 ulFlags,
4318 hMachine);
4319 if (ret != CR_SUCCESS)
4320 goto Done;
4321
4323 0,
4324 pszAliasDeviceInterfaceW,
4325 *pulLength + 1,
4326 pszAliasDeviceInterface,
4327 *pulLength + 1,
4328 NULL,
4329 NULL) == 0)
4330 ret = CR_FAILURE;
4331
4332Done:
4333 if (pszAliasDeviceInterfaceW != NULL)
4334 MyFree(pszAliasDeviceInterfaceW);
4335
4336 if (pszDeviceInterfaceW != NULL)
4337 MyFree(pszDeviceInterfaceW);
4338
4339 return ret;
4340}
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:4348

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 4348 of file cfgmgr.c.

4355{
4357 ULONG ulTransferLength;
4359
4360 TRACE("CM_Get_Device_Interface_Alias_ExW(%p %p %p %p %lx %p)\n",
4361 pszDeviceInterface, AliasInterfaceGuid,
4362 pszAliasDeviceInterface, pulLength, ulFlags, hMachine);
4363
4364 if (pszDeviceInterface == NULL ||
4365 AliasInterfaceGuid == NULL ||
4366 pszAliasDeviceInterface == NULL ||
4367 pulLength == NULL)
4368 return CR_INVALID_POINTER;
4369
4370 if (ulFlags != 0)
4371 return CR_INVALID_FLAG;
4372
4373 if (hMachine != NULL)
4374 {
4375 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4376 if (BindingHandle == NULL)
4377 return CR_FAILURE;
4378 }
4379 else
4380 {
4382 return CR_FAILURE;
4383 }
4384
4385 ulTransferLength = *pulLength;
4386
4388 {
4390 (LPWSTR)pszDeviceInterface,
4391 AliasInterfaceGuid,
4392 pszAliasDeviceInterface,
4393 pulLength,
4394 &ulTransferLength,
4395 0);
4396 }
4398 {
4400 }
4402
4403 return ret;
4404}
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_Alias_ExA(), and 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}

◆ 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 4454 of file cfgmgr.c.

4461{
4462 DEVINSTID_W pDeviceIdW = NULL;
4463 PWCHAR BufferW = NULL;
4465
4466 TRACE("CM_Get_Device_Interface_List_ExA(%s %s %p %lu 0x%08lx %p)\n",
4468 Buffer, BufferLen, ulFlags, hMachine);
4469
4470 if (Buffer == NULL ||
4471 BufferLen == 0)
4472 return CR_INVALID_POINTER;
4473
4474 if (pDeviceID != NULL)
4475 {
4476 if (!pSetupCaptureAndConvertAnsiArg(pDeviceID, &pDeviceIdW))
4477 return CR_INVALID_DEVICE_ID;
4478 }
4479
4480 BufferW = MyMalloc(BufferLen * sizeof(WCHAR));
4481 if (BufferW == NULL)
4482 {
4484 goto Done;
4485 }
4486
4488 BufferW, BufferLen, ulFlags,
4489 hMachine);
4490 if (ret != CR_SUCCESS)
4491 goto Done;
4492
4494 0,
4495 BufferW,
4496 BufferLen,
4497 Buffer,
4498 BufferLen,
4499 NULL,
4500 NULL) == 0)
4501 ret = CR_FAILURE;
4502
4503Done:
4504 if (BufferW != NULL)
4505 MyFree(BufferW);
4506
4507 if (pDeviceIdW != NULL)
4508 MyFree(pDeviceIdW);
4509
4510 return ret;
4511}
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:4519
#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 4519 of file cfgmgr.c.

4526{
4530
4531 TRACE("CM_Get_Device_Interface_List_ExW(%s %s %p %lu 0x%08lx %p)\n",
4533 Buffer, BufferLen, ulFlags, hMachine);
4534
4535 if (Buffer == NULL ||
4536 BufferLen == 0)
4537 return CR_INVALID_POINTER;
4538
4539 if (ulFlags & ~CM_GET_DEVICE_INTERFACE_LIST_BITS)
4540 return CR_INVALID_FLAG;
4541
4542 if (hMachine != NULL)
4543 {
4544 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4545 if (BindingHandle == NULL)
4546 return CR_FAILURE;
4547 }
4548 else
4549 {
4551 return CR_FAILURE;
4552 }
4553
4554 *Buffer = 0;
4555 BufferSize = BufferLen;
4556
4558 {
4561 pDeviceID,
4562 (LPBYTE)Buffer,
4563 &BufferSize,
4564 ulFlags);
4565 }
4567 {
4569 }
4571
4572 return ret;
4573}
DWORD WINAPI PNP_GetInterfaceDeviceList(handle_t hBinding, GUID *InterfaceGuid, LPWSTR pszDeviceID, BYTE *Buffer, PNP_RPC_BUFFER_SIZE *pulLength, DWORD ulFlags)
Definition: rpcserver.c:2686
#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 4619 of file cfgmgr.c.

4625{
4626 DEVINSTID_W pDeviceIdW = NULL;
4628
4629 TRACE("CM_Get_Device_Interface_List_Size_ExA(%p %p %s 0x%08lx %p)\n",
4630 pulLen, InterfaceClassGuid, debugstr_a(pDeviceID), ulFlags, hMachine);
4631
4632 if (pulLen == NULL)
4633 return CR_INVALID_POINTER;
4634
4635 if (pDeviceID != NULL)
4636 {
4637 if (!pSetupCaptureAndConvertAnsiArg(pDeviceID, &pDeviceIdW))
4638 return CR_INVALID_DEVICE_ID;
4639 }
4640
4641 *pulLen = 0;
4642
4644 pDeviceIdW, ulFlags, hMachine);
4645
4646 if (pDeviceIdW != NULL)
4647 MyFree(pDeviceIdW);
4648
4649 return ret;
4650}
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:4658

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 4658 of file cfgmgr.c.

4664{
4667
4668 TRACE("CM_Get_Device_Interface_List_Size_ExW(%p %p %s 0x%08lx %p)\n",
4669 pulLen, InterfaceClassGuid, debugstr_w(pDeviceID), ulFlags, hMachine);
4670
4671 if (pulLen == NULL)
4672 return CR_INVALID_POINTER;
4673
4674 if (ulFlags & ~CM_GET_DEVICE_INTERFACE_LIST_BITS)
4675 return CR_INVALID_FLAG;
4676
4677 if (hMachine != NULL)
4678 {
4679 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4680 if (BindingHandle == NULL)
4681 return CR_FAILURE;
4682 }
4683 else
4684 {
4686 return CR_FAILURE;
4687 }
4688
4689 *pulLen = 0;
4690
4692 {
4694 pulLen,
4696 pDeviceID,
4697 ulFlags);
4698 }
4700 {
4702 }
4704
4705 return ret;
4706}
DWORD WINAPI PNP_GetInterfaceDeviceListSize(handle_t hBinding, PNP_RPC_BUFFER_SIZE *pulLen, GUID *InterfaceGuid, LPWSTR pszDeviceID, DWORD ulFlags)
Definition: rpcserver.c:2734

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 4581 of file cfgmgr.c.

4586{
4587 TRACE("CM_Get_Device_Interface_List_SizeA(%p %p %s 0x%08lx)\n",
4588 pulLen, InterfaceClassGuid, debugstr_a(pDeviceID), ulFlags);
4589
4591 pDeviceID, ulFlags, NULL);
4592}
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:4619

◆ 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 4600 of file cfgmgr.c.

4605{
4606 TRACE("CM_Get_Device_Interface_List_SizeW(%p %p %s 0x%08lx)\n",
4607 pulLen, InterfaceClassGuid, debugstr_w(pDeviceID), ulFlags);
4608
4610 pDeviceID, ulFlags, NULL);
4611}

◆ 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 4412 of file cfgmgr.c.

4418{
4419 TRACE("CM_Get_Device_Interface_ListA(%s %s %p %lu 0x%08lx)\n",
4421 Buffer, BufferLen, ulFlags);
4422
4424 Buffer, BufferLen, ulFlags, NULL);
4425}
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:4454

◆ 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 4433 of file cfgmgr.c.

4439{
4440 TRACE("CM_Get_Device_Interface_ListW(%s %s %p %lu 0x%08lx)\n",
4442 Buffer, BufferLen, ulFlags);
4443
4445 Buffer, BufferLen, ulFlags, NULL);
4446}

◆ 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:5267
#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 CResourceNode::CResourceNode(), 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:3538

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 4714 of file cfgmgr.c.

4718{
4719 TRACE("CM_Get_First_Log_Conf(%p %lx %lx)\n",
4720 plcLogConf, dnDevInst, ulFlags);
4721
4722 return CM_Get_First_Log_Conf_Ex(plcLogConf, dnDevInst, ulFlags, NULL);
4723}
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:4731

◆ 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 4731 of file cfgmgr.c.

4736{
4738 HSTRING_TABLE StringTable = NULL;
4739 LPWSTR lpDevInst = NULL;
4741 ULONG ulTag;
4742 PLOG_CONF_INFO pLogConfInfo;
4743
4744 FIXME("CM_Get_First_Log_Conf_Ex(%p %lx %lx %p)\n",
4745 plcLogConf, dnDevInst, ulFlags, hMachine);
4746
4747 if (dnDevInst == 0)
4748 return CR_INVALID_DEVINST;
4749
4750 if (ulFlags & ~LOG_CONF_BITS)
4751 return CR_INVALID_FLAG;
4752
4753 if (plcLogConf)
4754 *plcLogConf = 0;
4755
4756 if (hMachine != NULL)
4757 {
4758 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4759 if (BindingHandle == NULL)
4760 return CR_FAILURE;
4761
4762 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
4763 if (StringTable == 0)
4764 return CR_FAILURE;
4765 }
4766 else
4767 {
4768 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
4769 return CR_FAILURE;
4770 }
4771
4772 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
4773 if (lpDevInst == NULL)
4774 return CR_INVALID_DEVNODE;
4775
4777 {
4779 lpDevInst,
4780 ulFlags,
4781 &ulTag,
4782 ulFlags);
4783 }
4785 {
4787 }
4789
4790 if (ret != CR_SUCCESS)
4791 return ret;
4792
4793 if (plcLogConf)
4794 {
4795 pLogConfInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_CONF_INFO));
4796 if (pLogConfInfo == NULL)
4797 return CR_OUT_OF_MEMORY;
4798
4799 pLogConfInfo->ulMagic = LOG_CONF_MAGIC;
4800 pLogConfInfo->dnDevInst = dnDevInst;
4801 pLogConfInfo->ulType = ulFlags;
4802 pLogConfInfo->ulTag = ulTag;
4803
4804 *plcLogConf = (LOG_CONF)pLogConfInfo;
4805 }
4806
4807 return CR_SUCCESS;
4808}
DWORD WINAPI PNP_GetFirstLogConf(handle_t hBinding, LPWSTR pDeviceID, DWORD ulLogConfType, DWORD *pulLogConfTag, DWORD ulFlags)
Definition: rpcserver.c:4567
_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 4816 of file cfgmgr.c.

4819{
4820 TRACE("CM_Get_Global_State(%p %lx)\n",
4821 pulState, ulFlags);
4822
4823 return CM_Get_Global_State_Ex(pulState, ulFlags, NULL);
4824}
CONFIGRET WINAPI CM_Get_Global_State_Ex(_Out_ PULONG pulState, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:4832

◆ 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 4832 of file cfgmgr.c.

4836{
4838 CONFIGRET ret;
4839
4840 TRACE("CM_Get_Global_State_Ex(%p %lx %p)\n",
4841 pulState, ulFlags, hMachine);
4842
4843 if (pulState == NULL)
4844 return CR_INVALID_POINTER;
4845
4846 if (ulFlags != 0)
4847 return CR_INVALID_FLAG;
4848
4849 if (hMachine != NULL)
4850 {
4851 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4852 if (BindingHandle == NULL)
4853 return CR_FAILURE;
4854 }
4855 else
4856 {
4858 return CR_FAILURE;
4859 }
4860
4862 {
4863 ret = PNP_GetGlobalState(BindingHandle, pulState, ulFlags);
4864 }
4866 {
4868 }
4870
4871 return ret;
4872}
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 5041 of file cfgmgr.c.

5046{
5047 HWPROFILEINFO_W LocalProfileInfo;
5048 CONFIGRET ret;
5049
5050 TRACE("CM_Get_Hardware_Profile_Info_ExA(%lu %p %lx %p)\n",
5051 ulIndex, pHWProfileInfo, ulFlags, hMachine);
5052
5053 if (pHWProfileInfo == NULL)
5054 return CR_INVALID_POINTER;
5055
5056 ret = CM_Get_Hardware_Profile_Info_ExW(ulIndex, &LocalProfileInfo,
5057 ulFlags, hMachine);
5058 if (ret == CR_SUCCESS)
5059 {
5060 pHWProfileInfo->HWPI_ulHWProfile = LocalProfileInfo.HWPI_ulHWProfile;
5061 pHWProfileInfo->HWPI_dwFlags = LocalProfileInfo.HWPI_dwFlags;
5062
5064 0,
5065 LocalProfileInfo.HWPI_szFriendlyName,
5066 lstrlenW(LocalProfileInfo.HWPI_szFriendlyName) + 1,
5067 pHWProfileInfo->HWPI_szFriendlyName,
5069 NULL,
5070 NULL) == 0)
5071 ret = CR_FAILURE;
5072 }
5073
5074 return ret;
5075}
#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:5083
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 5083 of file cfgmgr.c.

5088{
5090 CONFIGRET ret;
5091
5092 TRACE("CM_Get_Hardware_Profile_Info_ExW(%lu %p %lx %p)\n",
5093 ulIndex, pHWProfileInfo, ulFlags, hMachine);
5094
5095 if (pHWProfileInfo == NULL)
5096 return CR_INVALID_POINTER;
5097
5098 if (ulFlags != 0)
5099 return CR_INVALID_FLAG;
5100
5101 if (hMachine != NULL)
5102 {
5103 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5104 if (BindingHandle == NULL)
5105 return CR_FAILURE;
5106 }
5107 else
5108 {
5110 return CR_FAILURE;
5111 }
5112
5114 {
5115 ret = PNP_GetHwProfInfo(BindingHandle, ulIndex, pHWProfileInfo,
5116 sizeof(HWPROFILEINFO_W), 0);
5117 }
5119 {
5121 }
5123
5124 return ret;
5125}
DWORD WINAPI PNP_GetHwProfInfo(handle_t hBinding, DWORD ulIndex, HWPROFILEINFO *pHWProfileInfo, DWORD ulProfileInfoSize, DWORD ulFlags)
Definition: rpcserver.c:4153

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 5005 of file cfgmgr.c.

5009{
5010 TRACE("CM_Get_Hardware_Profile_InfoA(%lu %p %lx)\n",
5011 ulIndex, pHWProfileInfo, ulFlags);
5012
5013 return CM_Get_Hardware_Profile_Info_ExA(ulIndex, pHWProfileInfo,
5014 ulFlags, NULL);
5015}
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:5041

◆ 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 5023 of file cfgmgr.c.

5027{
5028 TRACE("CM_Get_Hardware_Profile_InfoW(%lu %p %lx)\n",
5029 ulIndex, pHWProfileInfo, ulFlags);
5030
5031 return CM_Get_Hardware_Profile_Info_ExW(ulIndex, pHWProfileInfo,
5032 ulFlags, NULL);
5033}

◆ 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 4918 of file cfgmgr.c.

4924{
4925 DEVINSTID_W pszDevIdW = NULL;
4927
4928 TRACE("CM_Get_HW_Prof_Flags_ExA(%s %lu %p %lx %p)\n",
4929 debugstr_a(szDevInstName), ulHardwareProfile, pulValue, ulFlags, hMachine);
4930
4931 if (szDevInstName != NULL)
4932 {
4933 if (pSetupCaptureAndConvertAnsiArg(szDevInstName, &pszDevIdW))
4934 return CR_INVALID_DEVICE_ID;
4935 }
4936
4937 ret = CM_Get_HW_Prof_Flags_ExW(pszDevIdW, ulHardwareProfile,
4938 pulValue, ulFlags, hMachine);
4939
4940 if (pszDevIdW != NULL)
4941 MyFree(pszDevIdW);
4942
4943 return ret;
4944}
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:4952

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 4952 of file cfgmgr.c.

4958{
4960 CONFIGRET ret;
4961
4962 FIXME("CM_Get_HW_Prof_Flags_ExW(%s %lu %p %lx %p)\n",
4963 debugstr_w(szDevInstName), ulHardwareProfile, pulValue, ulFlags, hMachine);
4964
4965 if ((szDevInstName == NULL) || (pulValue == NULL))
4966 return CR_INVALID_POINTER;
4967
4968 if (ulFlags != 0)
4969 return CR_INVALID_FLAG;
4970
4971 /* FIXME: Check whether szDevInstName is valid */
4972
4973 if (hMachine != NULL)
4974 {
4975 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
4976 if (BindingHandle == NULL)
4977 return CR_FAILURE;
4978 }
4979 else
4980 {
4982 return CR_FAILURE;
4983 }
4984
4986 {
4987 ret = PNP_HwProfFlags(BindingHandle, PNP_GET_HWPROFFLAGS, szDevInstName,
4988 ulHardwareProfile, pulValue, NULL, NULL, 0, 0);
4989 }
4991 {
4993 }
4995
4996 return ret;
4997}
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:4069

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 4880 of file cfgmgr.c.

4885{
4886 TRACE("CM_Get_HW_Prof_FlagsA(%s %lu %p %lx)\n",
4887 debugstr_a(szDevInstName), ulHardwareProfile, pulValue, ulFlags);
4888
4889 return CM_Get_HW_Prof_Flags_ExA(szDevInstName, ulHardwareProfile,
4890 pulValue, ulFlags, NULL);
4891}
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:4918

◆ 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 4899 of file cfgmgr.c.

4904{
4905 TRACE("CM_Get_HW_Prof_FlagsW(%s %lu %p %lx)\n",
4906 debugstr_w(szDevInstName), ulHardwareProfile, pulValue, ulFlags);
4907
4908 return CM_Get_HW_Prof_Flags_ExW(szDevInstName, ulHardwareProfile,
4909 pulValue, ulFlags, NULL);
4910}

◆ 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 5133 of file cfgmgr.c.

5137{
5138 TRACE("CM_Get_Log_Conf_Priority(%p %p %lx)\n",
5139 lcLogConf, pPriority, ulFlags);
5140
5141 return CM_Get_Log_Conf_Priority_Ex(lcLogConf, pPriority, ulFlags, NULL);
5142}
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:5150

◆ 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 5150 of file cfgmgr.c.

5155{
5157 HSTRING_TABLE StringTable = NULL;
5158 PLOG_CONF_INFO pLogConfInfo;
5159 LPWSTR lpDevInst;
5160 CONFIGRET ret;
5161
5162 FIXME("CM_Get_Log_Conf_Priority_Ex(%p %p %lx %p)\n",
5163 lcLogConf, pPriority, ulFlags, hMachine);
5164
5165 pLogConfInfo = (PLOG_CONF_INFO)lcLogConf;
5166 if (!IsValidLogConf(pLogConfInfo))
5167 return CR_INVALID_LOG_CONF;
5168
5169 if (pPriority == NULL)
5170 return CR_INVALID_POINTER;
5171
5172 if (ulFlags != 0)
5173 return CR_INVALID_FLAG;
5174
5175 if (hMachine != NULL)
5176 {
5177 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5178 if (BindingHandle == NULL)
5179 return CR_FAILURE;
5180
5181 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5182 if (StringTable == 0)
5183 return CR_FAILURE;
5184 }
5185 else
5186 {
5187 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5188 return CR_FAILURE;
5189 }
5190
5191 lpDevInst = pSetupStringTableStringFromId(StringTable, pLogConfInfo->dnDevInst);
5192 if (lpDevInst == NULL)
5193 return CR_INVALID_DEVNODE;
5194
5196 {
5198 lpDevInst,
5199 pLogConfInfo->ulType,
5200 pLogConfInfo->ulTag,
5201 pPriority,
5202 0);
5203 }
5205 {
5207 }
5209
5210 return ret;
5211}
DWORD WINAPI PNP_GetLogConfPriority(handle_t hBinding, LPWSTR pDeviceID, DWORD ulType, DWORD ulTag, DWORD *pPriority, DWORD ulFlags)
Definition: rpcserver.c:4787

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 5219 of file cfgmgr.c.

5223{
5224 TRACE("CM_Get_Next_Log_Conf(%p %p %lx)\n",
5225 plcLogConf, lcLogConf, ulFlags);
5226
5227 return CM_Get_Next_Log_Conf_Ex(plcLogConf, lcLogConf, ulFlags, NULL);
5228}
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:5236

◆ 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 5236 of file cfgmgr.c.

5241{
5243 HSTRING_TABLE StringTable = NULL;
5244 PLOG_CONF_INFO pLogConfInfo;
5245 PLOG_CONF_INFO pNewLogConfInfo;
5246 ULONG ulNewTag;
5247 LPWSTR lpDevInst;
5248 CONFIGRET ret;
5249
5250 FIXME("CM_Get_Next_Log_Conf_Ex(%p %p %lx %p)\n",
5251 plcLogConf, lcLogConf, ulFlags, hMachine);
5252
5253 if (plcLogConf)
5254 *plcLogConf = 0;
5255
5256 pLogConfInfo = (PLOG_CONF_INFO)lcLogConf;
5257 if (!IsValidLogConf(pLogConfInfo))
5258 return CR_INVALID_LOG_CONF;
5259
5260 if (ulFlags != 0)
5261 return CR_INVALID_FLAG;
5262
5263 if (hMachine != NULL)
5264 {
5265 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5266 if (BindingHandle == NULL)
5267 return CR_FAILURE;
5268
5269 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5270 if (StringTable == 0)
5271 return CR_FAILURE;
5272 }
5273 else
5274 {
5275 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5276 return CR_FAILURE;
5277 }
5278
5279 lpDevInst = pSetupStringTableStringFromId(StringTable, pLogConfInfo->dnDevInst);
5280 if (lpDevInst == NULL)
5281 return CR_INVALID_DEVNODE;
5282
5284 {
5286 lpDevInst,
5287 pLogConfInfo->ulType,
5288 pLogConfInfo->ulTag,
5289 &ulNewTag,
5290 0);
5291 }
5293 {
5295 }
5297
5298 if (ret != CR_SUCCESS)
5299 return ret;
5300
5301 if (plcLogConf)
5302 {
5303 pNewLogConfInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_CONF_INFO));
5304 if (pNewLogConfInfo == NULL)
5305 return CR_OUT_OF_MEMORY;
5306
5307 pNewLogConfInfo->ulMagic = LOG_CONF_MAGIC;
5308 pNewLogConfInfo->dnDevInst = pLogConfInfo->dnDevInst;
5309 pNewLogConfInfo->ulType = pLogConfInfo->ulType;
5310 pNewLogConfInfo->ulTag = ulNewTag;
5311
5312 *plcLogConf = (LOG_CONF)pNewLogConfInfo;
5313 }
5314
5315 return CR_SUCCESS;
5316}
DWORD WINAPI PNP_GetNextLogConf(handle_t hBinding, LPWSTR pDeviceID, DWORD ulLogConfType, DWORD ulCurrentTag, DWORD *pulNextTag, DWORD ulFlags)
Definition: rpcserver.c:4668

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 5324 of file cfgmgr.c.

5330{
5331 TRACE("CM_Get_Next_Res_Des(%p %p %lu %p %lx)\n",
5332 prdResDes, rdResDes, ForResource, pResourceID, ulFlags);
5333
5334 return CM_Get_Next_Res_Des_Ex(prdResDes, rdResDes, ForResource,
5335 pResourceID, ulFlags, NULL);
5336}
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:5344

◆ 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 5344 of file cfgmgr.c.

5351{
5353 HSTRING_TABLE StringTable = NULL;
5354 PRES_DES_INFO pNewResDesInfo = NULL;
5355 ULONG ulLogConfTag, ulLogConfType, ulResDesTag;
5356 ULONG ulNextResDesType = 0, ulNextResDesTag = 0;
5357 LPWSTR lpDevInst;
5358 DEVINST dnDevInst;
5359 CONFIGRET ret;
5360
5361 FIXME("CM_Get_Next_Res_Des_Ex(%p %p %lu %p %lx %p)\n",
5362 prdResDes, rdResDes, ForResource, pResourceID, ulFlags, hMachine);
5363
5364 if (prdResDes == NULL)
5365 return CR_INVALID_POINTER;
5366
5367 if (IsValidLogConf((PLOG_CONF_INFO)rdResDes))
5368 {
5369 FIXME("LogConf found!\n");
5370 dnDevInst = ((PLOG_CONF_INFO)rdResDes)->dnDevInst;
5371 ulLogConfTag = ((PLOG_CONF_INFO)rdResDes)->ulTag;
5372 ulLogConfType = ((PLOG_CONF_INFO)rdResDes)->ulType;
5373 ulResDesTag = (ULONG)-1;
5374 }
5375 else if (IsValidResDes((PRES_DES_INFO)rdResDes))
5376 {
5377 FIXME("ResDes found!\n");
5378 dnDevInst = ((PRES_DES_INFO)rdResDes)->dnDevInst;
5379 ulLogConfTag = ((PRES_DES_INFO)rdResDes)->ulLogConfTag;
5380 ulLogConfType = ((PRES_DES_INFO)rdResDes)->ulLogConfType;
5381 ulResDesTag = ((PRES_DES_INFO)rdResDes)->ulResDesTag;
5382 }
5383 else
5384 {
5385 return CR_INVALID_RES_DES;
5386 }
5387
5388 if ((ForResource == ResType_All) && (pResourceID == NULL))
5389 return CR_INVALID_POINTER;
5390
5391 if (ulFlags != 0)
5392 return CR_INVALID_FLAG;
5393
5394 if (hMachine != NULL)
5395 {
5396 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5397 if (BindingHandle == NULL)
5398 return CR_FAILURE;
5399
5400 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5401 if (StringTable == 0)
5402 return CR_FAILURE;
5403 }
5404 else
5405 {
5406 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5407 return CR_FAILURE;
5408 }
5409
5410 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
5411 if (lpDevInst == NULL)
5412 return CR_INVALID_DEVNODE;
5413
5415 {
5417 lpDevInst,
5418 ulLogConfTag,
5419 ulLogConfType,
5420 ForResource,
5421 ulResDesTag,
5422 &ulNextResDesTag,
5423 &ulNextResDesType,
5424 0);
5425 }
5427 {
5429 }
5431
5432 if (ret != CR_SUCCESS)
5433 return ret;
5434
5435 if (ForResource == ResType_All)
5436 *pResourceID = ulNextResDesType;
5437
5438 if (prdResDes)
5439 {
5440 pNewResDesInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(RES_DES_INFO));
5441 if (pNewResDesInfo == NULL)
5442 return CR_OUT_OF_MEMORY;
5443
5444 pNewResDesInfo->ulMagic = LOG_CONF_MAGIC;
5445 pNewResDesInfo->dnDevInst = dnDevInst;
5446 pNewResDesInfo->ulLogConfType = ulLogConfType;
5447 pNewResDesInfo->ulLogConfTag = ulLogConfTag;
5448 pNewResDesInfo->ulResDesType = ulNextResDesType;
5449 pNewResDesInfo->ulResDesTag = ulNextResDesTag;
5450
5451 *prdResDes = (RES_DES)pNewResDesInfo;
5452 }
5453
5454 return CR_SUCCESS;
5455}
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:4841
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 5463 of file cfgmgr.c.

5467{
5468 TRACE("CM_Get_Parent(%p %p %lx)\n",
5469 pdnDevInst, dnDevInst, ulFlags);
5470
5471 return CM_Get_Parent_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
5472}
CONFIGRET WINAPI CM_Get_Parent_Ex(_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5480

◆ 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 5480 of file cfgmgr.c.

5485{
5486 WCHAR szRelatedDevInst[MAX_DEVICE_ID_LEN];
5488 HSTRING_TABLE StringTable = NULL;
5489 LPWSTR lpDevInst;
5490 DWORD dwIndex, dwLength = MAX_DEVICE_ID_LEN;
5491 CONFIGRET ret;
5492
5493 TRACE("CM_Get_Parent_Ex(%p %lx %lx %p)\n",
5494 pdnDevInst, dnDevInst, ulFlags, hMachine);
5495
5496 if (pdnDevInst == NULL)
5497 return CR_INVALID_POINTER;
5498
5499 if (dnDevInst == 0)
5500 return CR_INVALID_DEVINST;
5501
5502 if (ulFlags != 0)
5503 return CR_INVALID_FLAG;
5504
5505 *pdnDevInst = -1;
5506
5507 if (hMachine != NULL)
5508 {
5509 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5510 if (BindingHandle == NULL)
5511 return CR_FAILURE;
5512
5513 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5514 if (StringTable == 0)
5515 return CR_FAILURE;
5516 }
5517 else
5518 {
5519 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5520 return CR_FAILURE;
5521 }
5522
5523 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
5524 if (lpDevInst == NULL)
5525 return CR_INVALID_DEVNODE;
5526
5528 {
5530 PNP_GET_PARENT_DEVICE_INSTANCE,
5531 lpDevInst,
5532 szRelatedDevInst,
5533 &dwLength,
5534 0);
5535 }
5537 {
5539 }
5541
5542 if (ret != CR_SUCCESS)
5543 return ret;
5544
5545 TRACE("szRelatedDevInst: %s\n", debugstr_w(szRelatedDevInst));
5546
5547 dwIndex = pSetupStringTableAddString(StringTable, szRelatedDevInst, 1);
5548 if (dwIndex == -1)
5549 return CR_FAILURE;
5550
5551 *pdnDevInst = dwIndex;
5552
5553 return CR_SUCCESS;
5554}

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 5562 of file cfgmgr.c.

5567{
5568 TRACE("CM_Get_Res_Des_Data(%p %p %lu %lx)\n",
5569 rdResDes, Buffer, BufferLen, ulFlags);
5570
5571 return CM_Get_Res_Des_Data_Ex(rdResDes, Buffer, BufferLen, ulFlags, NULL);
5572}
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:5580

◆ 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 5580 of file cfgmgr.c.

5586{
5587 FIXME("CM_Get_Res_Des_Data_Ex(%p %p %lu %lx %p)\n",
5588 rdResDes, Buffer, BufferLen, ulFlags, hMachine);
5589
5591}

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 5599 of file cfgmgr.c.

5603{
5604 TRACE("CM_Get_Res_Des_Data_Size(%p %p %lx)\n",
5605 pulSize, rdResDes, ulFlags);
5606
5607 return CM_Get_Res_Des_Data_Size_Ex(pulSize, rdResDes, ulFlags, NULL);
5608}
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:5616
_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 5616 of file cfgmgr.c.

5621{
5622 TRACE("CM_Get_Res_Des_Data_Size_Ex(%p %p %lx %p)\n",
5623 pulSize, rdResDes, ulFlags, hMachine);
5624
5626}

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 5634 of file cfgmgr.c.

5637{
5638 PCONFLICT_DATA pConflictData;
5639
5640 FIXME("CM_Get_Resource_Conflict_Count(%p %p)\n",
5641 clConflictList, pulCount);
5642
5643 pConflictData = (PCONFLICT_DATA)clConflictList;
5644 if (!IsValidConflictData(pConflictData))
5646
5647 if (pulCount == NULL)
5648 return CR_INVALID_POINTER;
5649
5650 *pulCount = pConflictData->pConflictList->ConflictsListed;
5651
5652 return CR_SUCCESS;
5653}
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 5661 of file cfgmgr.c.

5665{
5666 FIXME("CM_Get_Resource_Conflict_CountA(%p %lu %p)\n",
5667 clConflictList, ulIndex, pConflictDetails);
5668
5670}

◆ 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 5678 of file cfgmgr.c.

5682{
5683 FIXME("CM_Get_Resource_Conflict_CountW(%p %lu %p)\n",
5684 clConflictList, ulIndex, pConflictDetails);
5685
5687}

◆ CM_Get_Sibling()

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

Definition at line 5695 of file cfgmgr.c.

5699{
5700 TRACE("CM_Get_Sibling(%p %p %lx)\n",
5701 pdnDevInst, dnDevInst, ulFlags);
5702
5703 return CM_Get_Sibling_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
5704}
CONFIGRET WINAPI CM_Get_Sibling_Ex(_Out_ PDEVINST pdnDevInst, _In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5712

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 5712 of file cfgmgr.c.

5717{
5718 WCHAR szRelatedDevInst[MAX_DEVICE_ID_LEN];
5720 HSTRING_TABLE StringTable = NULL;
5721 LPWSTR lpDevInst;
5722 DWORD dwIndex, dwLength = MAX_DEVICE_ID_LEN;
5723 CONFIGRET ret;
5724
5725 TRACE("CM_Get_Sibling_Ex(%p %lx %lx %p)\n",
5726 pdnDevInst, dnDevInst, ulFlags, hMachine);
5727
5728 if (pdnDevInst == NULL)
5729 return CR_INVALID_POINTER;
5730
5731 if (dnDevInst == 0)
5732 return CR_INVALID_DEVINST;
5733
5734 if (ulFlags != 0)
5735 return CR_INVALID_FLAG;
5736
5737 *pdnDevInst = -1;
5738
5739 if (hMachine != NULL)
5740 {
5741 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5742 if (BindingHandle == NULL)
5743 return CR_FAILURE;
5744
5745 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
5746 if (StringTable == 0)
5747 return CR_FAILURE;
5748 }
5749 else
5750 {
5751 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
5752 return CR_FAILURE;
5753 }
5754
5755 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
5756 if (lpDevInst == NULL)
5757 return CR_INVALID_DEVNODE;
5758
5760 {
5762 PNP_GET_SIBLING_DEVICE_INSTANCE,
5763 lpDevInst,
5764 szRelatedDevInst,
5765 &dwLength,
5766 0);
5767 }
5769 {
5771 }
5773
5774 if (ret != CR_SUCCESS)
5775 return ret;
5776
5777 TRACE("szRelatedDevInst: %s\n", debugstr_w(szRelatedDevInst));
5778
5779 dwIndex = pSetupStringTableAddString(StringTable, szRelatedDevInst, 1);
5780 if (dwIndex == -1)
5781 return CR_FAILURE;
5782
5783 *pdnDevInst = dwIndex;
5784
5785 return CR_SUCCESS;
5786}

Referenced by CM_Get_Sibling().

◆ CM_Get_Version()

CMAPI WORD WINAPI CM_Get_Version ( VOID  )

Definition at line 5794 of file cfgmgr.c.

5795{
5796 TRACE("CM_Get_Version()\n");
5797
5798 return CM_Get_Version_Ex(NULL);
5799}
WORD WINAPI CM_Get_Version_Ex(_In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5807

Referenced by test_CM_Get_Version().

◆ CM_Get_Version_Ex()

CMAPI WORD WINAPI CM_Get_Version_Ex ( _In_opt_ HMACHINE  hMachine)

Definition at line 5807 of file cfgmgr.c.

5809{
5811 WORD Version = 0;
5812 CONFIGRET ret;
5813
5814 TRACE("CM_Get_Version_Ex(%p)\n", hMachine);
5815
5816 if (hMachine != NULL)
5817 {
5818 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5819 if (BindingHandle == NULL)
5820 return 0;
5821 }
5822 else
5823 {
5825 return CR_FAILURE;
5826 }
5827
5829 {
5831 }
5833 {
5835 }
5837
5838 if (ret != CR_SUCCESS)
5839 return 0;
5840
5841 return Version;
5842}
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 5850 of file cfgmgr.c.

5855{
5856 FIXME("CM_Intersect_Range_List(%p %p %p %lx)\n",
5857 rlhOld1, rlhOld2, rlhNew, ulFlags);
5858
5860}

◆ 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 5868 of file cfgmgr.c.

5873{
5874 FIXME("CM_Invert_Range_List(%p %p %I64u %lx)\n",
5875 rlhOld, rlhNew, ullMaxValue, ulFlags);
5876
5878}

◆ CM_Is_Dock_Station_Present()

CMAPI CONFIGRET WINAPI CM_Is_Dock_Station_Present ( _Out_ PBOOL  pbPresent)

Definition at line 5886 of file cfgmgr.c.

5888{
5889 TRACE("CM_Is_Dock_Station_Present(%p)\n",
5890 pbPresent);
5891
5892 return CM_Is_Dock_Station_Present_Ex(pbPresent, NULL);
5893}
CONFIGRET WINAPI CM_Is_Dock_Station_Present_Ex(_Out_ PBOOL pbPresent, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5901

◆ 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 5901 of file cfgmgr.c.

5904{
5906 CONFIGRET ret;
5907
5908 TRACE("CM_Is_Dock_Station_Present_Ex(%p %p)\n",
5909 pbPresent, hMachine);
5910
5911 if (pbPresent == NULL)
5912 return CR_INVALID_POINTER;
5913
5914 *pbPresent = FALSE;
5915
5916 if (hMachine != NULL)
5917 {
5918 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5919 if (BindingHandle == NULL)
5920 return CR_FAILURE;
5921 }
5922 else
5923 {
5925 return CR_FAILURE;
5926 }
5927
5929 {
5931 pbPresent);
5932 }
5934 {
5936 }
5938
5939 return ret;
5940}
CONFIGRET WINAPI PNP_IsDockStationPresent(handle_t hBinding, BOOL *Present)
Definition: rpcserver.c:3981

Referenced by CM_Is_Dock_Station_Present().

◆ CM_Is_Version_Available()

CMAPI BOOL WINAPI CM_Is_Version_Available ( _In_ WORD  wVersion)

Definition at line 5948 of file cfgmgr.c.

5950{
5951 TRACE("CM_Is_Version_Available(%hu)\n",
5952 wVersion);
5953
5954 return CM_Is_Version_Available_Ex(wVersion, NULL);
5955}
BOOL WINAPI CM_Is_Version_Available_Ex(_In_ WORD wVersion, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:5963

◆ CM_Is_Version_Available_Ex()

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

Definition at line 5963 of file cfgmgr.c.

5966{
5968 WORD wServerVersion;
5969 CONFIGRET ret;
5970
5971 TRACE("CM_Is_Version_Available_Ex(%hu %p)\n",
5972 wVersion, hMachine);
5973
5974 if (wVersion <= 0x400)
5975 return TRUE;
5976
5977 if (hMachine != NULL)
5978 {
5979 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
5980 if (BindingHandle == NULL)
5981 return FALSE;
5982 }
5983 else
5984 {
5986 return FALSE;
5987 }
5988
5990 {
5991 ret = PNP_GetVersion(BindingHandle, &wServerVersion);
5992 }
5994 {
5996 }
5998
5999 if (ret != CR_SUCCESS)
6000 return FALSE;
6001
6002 return (wServerVersion >= wVersion);
6003}

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 6045 of file cfgmgr.c.

6050{
6051 DEVINSTID_W pDevIdW = NULL;
6053
6054 TRACE("CM_Locate_DevNode_ExA(%p %s %lx %p)\n",
6055 pdnDevInst, debugstr_a(pDeviceID), ulFlags, hMachine);
6056
6057 if (pDeviceID != NULL)
6058 {
6059 if (pSetupCaptureAndConvertAnsiArg(pDeviceID, &pDevIdW))
6060 return CR_INVALID_DEVICE_ID;
6061 }
6062
6063 ret = CM_Locate_DevNode_ExW(pdnDevInst, pDevIdW, ulFlags, hMachine);
6064
6065 if (pDevIdW != NULL)
6066 MyFree(pDevIdW);
6067
6068 return ret;
6069}
CONFIGRET WINAPI CM_Locate_DevNode_ExW(_Out_ PDEVINST pdnDevInst, _In_opt_ DEVINSTID_W pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6077

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 6077 of file cfgmgr.c.

6082{
6083 WCHAR DeviceIdBuffer[MAX_DEVICE_ID_LEN];
6085 HSTRING_TABLE StringTable = NULL;
6087
6088 TRACE("CM_Locate_DevNode_ExW(%p %s %lx %p)\n",
6089 pdnDevInst, debugstr_w(pDeviceID), ulFlags, hMachine);
6090
6091 if (pdnDevInst == NULL)
6092 return CR_INVALID_POINTER;
6093
6094 if (ulFlags & ~CM_LOCATE_DEVNODE_BITS)
6095 return CR_INVALID_FLAG;
6096
6097 if (hMachine != NULL)
6098 {
6099 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6100 if (BindingHandle == NULL)
6101 return CR_FAILURE;
6102
6103 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6104 if (StringTable == 0)
6105 return CR_FAILURE;
6106 }
6107 else
6108 {
6109 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6110 return CR_FAILURE;
6111 }
6112
6113 if (pDeviceID != NULL && lstrlenW(pDeviceID) != 0)
6114 {
6115 lstrcpyW(DeviceIdBuffer, pDeviceID);
6116
6118 {
6119 /* Validate the device ID */
6121 DeviceIdBuffer,
6122 ulFlags);
6123 }
6125 {
6127 }
6129 }
6130 else
6131 {
6133 {
6134 /* Get the root device ID */
6136 DeviceIdBuffer,
6138 }
6140 {
6142 }
6144 }
6145
6146 TRACE("DeviceIdBuffer: %s\n", debugstr_w(DeviceIdBuffer));
6147
6148 if (ret == CR_SUCCESS)
6149 {
6150 *pdnDevInst = pSetupStringTableAddString(StringTable, DeviceIdBuffer, 1);
6151 if (*pdnDevInst == -1)
6152 ret = CR_FAILURE;
6153 }
6154
6155 return ret;
6156}
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 6011 of file cfgmgr.c.

6015{
6016 TRACE("CM_Locate_DevNodeA(%p %s %lx)\n",
6017 pdnDevInst, debugstr_a(pDeviceID), ulFlags);
6018
6019 return CM_Locate_DevNode_ExA(pdnDevInst, pDeviceID, ulFlags, NULL);
6020}
CONFIGRET WINAPI CM_Locate_DevNode_ExA(_Out_ PDEVINST pdnDevInst, _In_opt_ DEVINSTID_A pDeviceID, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6045

◆ CM_Locate_DevNodeW()

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

Definition at line 6028 of file cfgmgr.c.

6032{
6033 TRACE("CM_Locate_DevNodeW(%p %s %lx)\n",
6034 pdnDevInst, debugstr_w(pDeviceID), ulFlags);
6035
6036 return CM_Locate_DevNode_ExW(pdnDevInst, pDeviceID, ulFlags, NULL);
6037}

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 6164 of file cfgmgr.c.

6169{
6170 FIXME("CM_Merge_Range_List(%p %p %p %lx)\n",
6171 rlhOld1, rlhOld2, rlhNew, ulFlags);
6172
6174}

◆ 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 6182 of file cfgmgr.c.

6189{
6190 TRACE("CM_Modify_Res_Des(%p %p %lx %p %lu %lx)\n",
6191 prdResDes, rdResDes, ResourceID, ResourceData,
6192 ResourceLen, ulFlags);
6193
6194 return CM_Modify_Res_Des_Ex(prdResDes, rdResDes, ResourceID, ResourceData,
6195 ResourceLen, ulFlags, NULL);
6196}
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:6204

◆ 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 6204 of file cfgmgr.c.

6212{
6213 FIXME("CM_Modify_Res_Des_Ex(%p %p %lx %p %lu %lx %p)\n",
6214 prdResDes, rdResDes, ResourceID, ResourceData,
6215 ResourceLen, ulFlags, hMachine);
6216
6218}

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 6226 of file cfgmgr.c.

6230{
6231 TRACE("CM_Move_DevNode(%lx %lx %lx)\n",
6232 dnFromDevInst, dnToDevInst, ulFlags);
6233
6234 return CM_Move_DevNode_Ex(dnFromDevInst, dnToDevInst, ulFlags, NULL);
6235}
CONFIGRET WINAPI CM_Move_DevNode_Ex(_In_ DEVINST dnFromDevInst, _In_ DEVINST dnToDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:6243

◆ 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 6243 of file cfgmgr.c.

6248{
6250 HSTRING_TABLE StringTable = NULL;
6251 LPWSTR lpFromDevInst;
6252 LPWSTR lpToDevInst;
6253 CONFIGRET ret;
6254
6255 FIXME("CM_Move_DevNode_Ex(%lx %lx %lx %p)\n",
6256 dnFromDevInst, dnToDevInst, ulFlags, hMachine);
6257
6258 if (!pSetupIsUserAdmin())
6259 return CR_ACCESS_DENIED;
6260
6261 if (dnFromDevInst == 0 || dnToDevInst == 0)
6262 return CR_INVALID_DEVNODE;
6263
6264 if (ulFlags != 0)
6265 return CR_INVALID_FLAG;
6266
6267 if (hMachine != NULL)
6268 {
6269 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6270 if (BindingHandle == NULL)
6271 return CR_FAILURE;
6272
6273 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6274 if (StringTable == 0)
6275 return CR_FAILURE;
6276 }
6277 else
6278 {
6279 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6280 return CR_FAILURE;
6281 }
6282
6283 lpFromDevInst = pSetupStringTableStringFromId(StringTable, dnFromDevInst);
6284 if (lpFromDevInst == NULL)
6285 return CR_INVALID_DEVNODE;
6286
6287 lpToDevInst = pSetupStringTableStringFromId(StringTable, dnToDevInst);
6288 if (lpToDevInst == NULL)
6289 return CR_INVALID_DEVNODE;
6290
6292 {
6294 PNP_DEVINST_MOVE,
6295 ulFlags,
6296 lpFromDevInst,
6297 lpToDevInst);
6298 }
6300 {
6302 }
6304
6305 return ret;
6306}

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 6314 of file cfgmgr.c.

6319{
6320 PINTERNAL_RANGE_LIST pRangeList;
6321 PINTERNAL_RANGE pRange;
6322 PLIST_ENTRY ListEntry;
6324
6325 FIXME("CM_Next_Range(%p %p %p %lx)\n",
6326 preElement, pullStart, pullEnd, ulFlags);
6327
6328 pRange = (PINTERNAL_RANGE)preElement;
6329
6330 if (pRange == NULL || pRange->pRangeList == NULL)
6331 return CR_FAILURE;
6332
6333 if (pullStart == NULL || pullEnd == NULL)
6334 return CR_INVALID_POINTER;
6335
6336 if (ulFlags != 0)
6337 return CR_INVALID_FLAG;
6338
6339 pRangeList = pRange->pRangeList;
6340
6341 /* Lock the range list */
6342 WaitForSingleObject(pRangeList->hMutex, INFINITE);
6343
6344 /* Fail, if we reached the end of the list */
6345 if (pRange->ListEntry.Flink == &pRangeList->ListHead)
6346 {
6347 ret = CR_FAILURE;
6348 goto done;
6349 }
6350
6351 /* Get the next range */
6352 ListEntry = pRangeList->ListHead.Flink;
6353 pRange = CONTAINING_RECORD(ListEntry, INTERNAL_RANGE, ListEntry);
6354
6355 /* Return the range data */
6356 *pullStart = pRange->ullStart;
6357 *pullEnd = pRange->ullEnd;
6358 *preElement = (RANGE_ELEMENT)pRange;
6359
6360done:
6361 /* Unlock the range list */
6362 ReleaseMutex(pRangeList->hMutex);
6363
6364 return ret;
6365}
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 6417 of file cfgmgr.c.

6425{
6426 LPWSTR pszClassNameW = NULL;
6427 CONFIGRET ret;
6428
6429 TRACE("CM_Open_Class_Key_ExA(%p %s %lx %lx %p %lx %p)\n",
6430 debugstr_guid(pClassGuid), debugstr_a(pszClassName),
6431 samDesired, Disposition, phkClass, ulFlags, hMachine);
6432
6433 if (pszClassName != NULL)
6434 {
6435 if (pSetupCaptureAndConvertAnsiArg(pszClassName, &pszClassNameW))
6436 return CR_INVALID_DATA;
6437 }
6438
6439 ret = CM_Open_Class_Key_ExW(pClassGuid, pszClassNameW, samDesired,
6440 Disposition, phkClass, ulFlags, hMachine);
6441
6442 if (pszClassNameW != NULL)
6443 MyFree(pszClassNameW);
6444
6445 return ret;
6446}
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:6454
_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 6454 of file cfgmgr.c.

6462{
6463 WCHAR szKeyName[MAX_PATH];
6464 LPWSTR lpGuidString;
6465 DWORD dwDisposition;
6466 DWORD dwError;
6467 HKEY hKey;
6468
6469 TRACE("CM_Open_Class_Key_ExW(%p %s %lx %lx %p %lx %p)\n",
6470 debugstr_guid(pClassGuid), debugstr_w(pszClassName),
6471 samDesired, Disposition, phkClass, ulFlags, hMachine);
6472
6473 /* Check Disposition and ulFlags */
6475 (ulFlags & ~CM_OPEN_CLASS_KEY_BITS))
6476 return CR_INVALID_FLAG;
6477
6478 /* Check phkClass */
6479 if (phkClass == NULL)
6480 return CR_INVALID_POINTER;
6481
6482 *phkClass = NULL;
6483
6484 if (ulFlags == CM_OPEN_CLASS_KEY_INTERFACE &&
6485 pszClassName != NULL)
6486 return CR_INVALID_DATA;
6487
6488 if (hMachine == NULL)
6489 {
6491 }
6492 else
6493 {
6494 if (RegConnectRegistryW(((PMACHINE_INFO)hMachine)->szMachineName,
6496 &hKey))
6497 return CR_REGISTRY_ERROR;
6498 }
6499
6500 if (ulFlags & CM_OPEN_CLASS_KEY_INTERFACE)
6501 {
6502 lstrcpyW(szKeyName, DeviceClasses);
6503 }
6504 else
6505 {
6506 lstrcpyW(szKeyName, ControlClass);
6507 }
6508
6509 if (pClassGuid != NULL)
6510 {
6511 if (UuidToStringW((UUID*)pClassGuid, &lpGuidString) != RPC_S_OK)
6512 {
6514 return CR_INVALID_DATA;
6515 }
6516
6517 lstrcatW(szKeyName, BackslashOpenBrace);
6518 lstrcatW(szKeyName, lpGuidString);
6519 lstrcatW(szKeyName, CloseBrace);
6520 }
6521
6523 {
6524 dwError = RegCreateKeyExW(hKey, szKeyName, 0, NULL, 0, samDesired,
6525 NULL, phkClass, &dwDisposition);
6526 }
6527 else
6528 {
6529 dwError = RegOpenKeyExW(hKey, szKeyName, 0, samDesired, phkClass);
6530 }
6531
6533
6534 if (pClassGuid != NULL)
6535 RpcStringFreeW(&lpGuidString);
6536
6537 if (dwError != ERROR_SUCCESS)
6538 {
6539 *phkClass = NULL;
6541 }
6542
6543 if (pszClassName != NULL)
6544 {
6545 RegSetValueExW(*phkClass, Class, 0, REG_SZ, (LPBYTE)pszClassName,
6546 (lstrlenW(pszClassName) + 1) * sizeof(WCHAR));
6547 }
6548
6549 return CR_SUCCESS;
6550}
#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 6373 of file cfgmgr.c.

6380{
6381 TRACE("CM_Open_Class_KeyA(%p %s %lx %lx %p %lx)\n",
6382 debugstr_guid(pClassGuid), debugstr_a(pszClassName),
6383 samDesired, Disposition, phkClass, ulFlags);
6384
6385 return CM_Open_Class_Key_ExA(pClassGuid, pszClassName, samDesired,
6386 Disposition, phkClass, ulFlags, NULL);
6387}
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:6417

◆ 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 6395 of file cfgmgr.c.

6402{
6403 TRACE("CM_Open_Class_KeyW(%p %s %lx %lx %p %lx)\n",
6404 debugstr_guid(pClassGuid), debugstr_w(pszClassName),
6405 samDesired, Disposition, phkClass, ulFlags);
6406
6407 return CM_Open_Class_Key_ExW(pClassGuid, pszClassName, samDesired,
6408 Disposition, phkClass, ulFlags, NULL);
6409}

◆ 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 6558 of file cfgmgr.c.

6565{
6566 TRACE("CM_Open_DevNode_Key(%lx %lx %lu %lx %p %lx)\n",
6567 dnDevNode, samDesired, ulHardwareProfile, Disposition, phkDevice, ulFlags);
6568
6569 return CM_Open_DevNode_Key_Ex(dnDevNode, samDesired, ulHardwareProfile,
6570 Disposition, phkDevice, ulFlags, NULL);
6571}
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:6579

◆ 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 6579 of file cfgmgr.c.

6587{
6589 HSTRING_TABLE StringTable = NULL;
6590 LPWSTR pszDevInst, pszKeyPath = NULL, pszInstancePath = NULL;
6591 LONG lError;
6592 DWORD dwDisposition;
6593 HKEY hRootKey = NULL;
6595
6596 TRACE("CM_Open_DevNode_Key_Ex(%lx %lx %lu %lx %p %lx %p)\n",
6597 dnDevNode, samDesired, ulHardwareProfile, Disposition, phkDevice, ulFlags, hMachine);
6598
6599 if (phkDevice == NULL)
6600 return CR_INVALID_POINTER;
6601
6602 *phkDevice = NULL;
6603
6604 if (dnDevNode == 0)
6605 return CR_INVALID_DEVNODE;
6606
6607 if (ulFlags & ~CM_REGISTRY_BITS)
6608 return CR_INVALID_FLAG;
6609
6611 return CR_INVALID_DATA;
6612
6613 if (hMachine != NULL)
6614 {
6615 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6616 if (BindingHandle == NULL)
6617 return CR_FAILURE;
6618
6619 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6620 if (StringTable == 0)
6621 return CR_FAILURE;
6622 }
6623 else
6624 {
6625 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6626 return CR_FAILURE;
6627 }
6628
6629 pszDevInst = pSetupStringTableStringFromId(StringTable, dnDevNode);
6630 if (pszDevInst == NULL)
6631 return CR_INVALID_DEVNODE;
6632
6633 TRACE("pszDevInst: %S\n", pszDevInst);
6634
6635 pszKeyPath = MyMalloc(512 * sizeof(WCHAR));
6636 if (pszKeyPath == NULL)
6637 {
6639 goto done;
6640 }
6641
6642 pszInstancePath = MyMalloc(512 * sizeof(WCHAR));
6643 if (pszInstancePath == NULL)
6644 {
6646 goto done;
6647 }
6648
6650 pszDevInst,
6651 pszKeyPath,
6652 pszInstancePath,
6653 ulHardwareProfile,
6654 ulFlags);
6655 if (ret != CR_SUCCESS)
6656 goto done;
6657
6658 TRACE("pszKeyPath: %S\n", pszKeyPath);
6659 TRACE("pszInstancePath: %S\n", pszInstancePath);
6660
6661 wcscat(pszKeyPath, L"\\");
6662 wcscat(pszKeyPath, pszInstancePath);
6663
6664 TRACE("pszKeyPath: %S\n", pszKeyPath);
6665
6666 if (hMachine == NULL)
6667 {
6668 hRootKey = HKEY_LOCAL_MACHINE;
6669 }
6670 else
6671 {
6672 if (RegConnectRegistryW(((PMACHINE_INFO)hMachine)->szMachineName,
6674 &hRootKey))
6675 {
6677 goto done;
6678 }
6679 }
6680
6682 {
6683 lError = RegCreateKeyExW(hRootKey,
6684 pszKeyPath,
6685 0,
6686 NULL,
6687 0,
6688 samDesired,
6689 NULL,
6690 phkDevice,
6691 &dwDisposition);
6692 }
6693 else
6694 {
6695 lError = RegOpenKeyExW(hRootKey,
6696 pszKeyPath,
6697 0,
6698 samDesired,
6699 phkDevice);
6700 }
6701
6702 if (lError != ERROR_SUCCESS)
6703 {
6704 *phkDevice = NULL;
6706 }
6707
6708done:
6709 if ((hRootKey != NULL) && (hRootKey != HKEY_LOCAL_MACHINE))
6710 RegCloseKey(hRootKey);
6711
6712 if (pszInstancePath != NULL)
6713 MyFree(pszInstancePath);
6714
6715 if (pszKeyPath != NULL)
6716 MyFree(pszKeyPath);
6717
6718 return ret;
6719}
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 6767 of file cfgmgr.c.

6774{
6775 LPWSTR lpLocalVetoName;
6776 CONFIGRET ret;
6777
6778 TRACE("CM_Query_And_Remove_SubTree_ExA(%lx %p %p %lu %lx %p)\n",
6779 dnAncestor, pVetoType, pszVetoName, ulNameLength,
6780 ulFlags, hMachine);
6781
6782 if (pszVetoName == NULL && ulNameLength == 0)
6783 return CR_INVALID_POINTER;
6784
6785 lpLocalVetoName = HeapAlloc(GetProcessHeap(), 0, ulNameLength * sizeof(WCHAR));
6786 if (lpLocalVetoName == NULL)
6787 return CR_OUT_OF_MEMORY;
6788
6789 ret = CM_Query_And_Remove_SubTree_ExW(dnAncestor, pVetoType, lpLocalVetoName,
6790 ulNameLength, ulFlags, hMachine);
6791 if (ret == CR_REMOVE_VETOED)
6792 {
6794 0,
6795 lpLocalVetoName,
6796 ulNameLength,
6797 pszVetoName,
6798 ulNameLength,
6799 NULL,
6800 NULL) == 0)
6801 ret = CR_FAILURE;
6802 }
6803
6804 HeapFree(GetProcessHeap(), 0, lpLocalVetoName);
6805
6806 return ret;
6807}
#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:6815

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 6815 of file cfgmgr.c.

6822{
6824 HSTRING_TABLE StringTable = NULL;
6825 LPWSTR lpDevInst;
6826 CONFIGRET ret;
6827
6828 TRACE("CM_Query_And_Remove_SubTree_ExW(%lx %p %p %lu %lx %p)\n",
6829 dnAncestor, pVetoType, pszVetoName, ulNameLength,
6830 ulFlags, hMachine);
6831
6832 if (dnAncestor == 0)
6833 return CR_INVALID_DEVNODE;
6834
6835 if (ulFlags & ~CM_REMOVE_BITS)
6836 return CR_INVALID_FLAG;
6837
6838 if (pszVetoName == NULL && ulNameLength == 0)
6839 return CR_INVALID_POINTER;
6840
6841 if (hMachine != NULL)
6842 {
6843 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6844 if (BindingHandle == NULL)
6845 return CR_FAILURE;
6846
6847 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6848 if (StringTable == 0)
6849 return CR_FAILURE;
6850 }
6851 else
6852 {
6853 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6854 return CR_FAILURE;
6855 }
6856
6857 lpDevInst = pSetupStringTableStringFromId(StringTable, dnAncestor);
6858 if (lpDevInst == NULL)
6859 return CR_INVALID_DEVNODE;
6860
6862 {
6864 lpDevInst,
6865 pVetoType,
6866 pszVetoName,
6867 ulNameLength,
6868 ulFlags);
6869 }
6871 {
6873 }
6875
6876 return ret;
6877}
DWORD WINAPI PNP_QueryRemove(handle_t hBinding, LPWSTR pszDeviceID, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, DWORD ulNameLength, DWORD ulFlags)
Definition: rpcserver.c:3884
#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 6727 of file cfgmgr.c.

6733{
6734 TRACE("CM_Query_And_Remove_SubTreeA(%lx %p %p %lu %lx)\n",
6735 dnAncestor, pVetoType, pszVetoName, ulNameLength, ulFlags);
6736
6737 return CM_Query_And_Remove_SubTree_ExA(dnAncestor, pVetoType, pszVetoName,
6738 ulNameLength, ulFlags, NULL);
6739}
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:6767

◆ 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 6747 of file cfgmgr.c.

6753{
6754 TRACE("CM_Query_And_Remove_SubTreeW(%lx %p %p %lu %lx)\n",
6755 dnAncestor, pVetoType, pszVetoName, ulNameLength, ulFlags);
6756
6757 return CM_Query_And_Remove_SubTree_ExW(dnAncestor, pVetoType, pszVetoName,
6758 ulNameLength, ulFlags, NULL);
6759}

◆ 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 6885 of file cfgmgr.c.

6891{
6892 TRACE("CM_Query_Arbitrator_Free_Data(%p %lu %lx %lu 0x%08lx)\n",
6893 pData, DataLen, dnDevInst, ResourceID, ulFlags);
6894
6895 return CM_Query_Arbitrator_Free_Data_Ex(pData, DataLen, dnDevInst,
6896 ResourceID, ulFlags, NULL);
6897}
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:6905
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 6905 of file cfgmgr.c.

6912{
6914 HSTRING_TABLE StringTable = NULL;
6915 LPWSTR lpDevInst;
6916 CONFIGRET ret;
6917
6918 TRACE("CM_Query_Arbitrator_Free_Data_Ex(%p %lu %lx %lu 0x%08lx %p)\n",
6919 pData, DataLen, dnDevInst, ResourceID, ulFlags, hMachine);
6920
6921 if (pData == NULL || DataLen == 0)
6922 return CR_INVALID_POINTER;
6923
6924 if (dnDevInst == 0)
6925 return CR_INVALID_DEVINST;
6926
6927 if (ulFlags & ~CM_QUERY_ARBITRATOR_BITS)
6928 return CR_INVALID_FLAG;
6929
6930 if (hMachine != NULL)
6931 {
6932 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
6933 if (BindingHandle == NULL)
6934 return CR_FAILURE;
6935
6936 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
6937 if (StringTable == 0)
6938 return CR_FAILURE;
6939 }
6940 else
6941 {
6942 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
6943 return CR_FAILURE;
6944 }
6945
6946 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
6947 if (lpDevInst == NULL)
6948 return CR_INVALID_DEVNODE;
6949
6951 {
6953 pData,
6954 DataLen,
6955 lpDevInst,
6956 ResourceID,
6957 ulFlags);
6958 }
6960 {
6962 }
6964
6965 return ret;
6966}
DWORD WINAPI PNP_QueryArbitratorFreeData(handle_t hBinding, BYTE *pData, DWORD DataLen, LPWSTR pDeviceID, RESOURCEID ResourceID, DWORD ulFlags)
Definition: rpcserver.c:5046
#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 6974 of file cfgmgr.c.

6979{
6980 TRACE("CM_Query_Arbitrator_Free_Size(%p %lu %lx 0x%08lx)\n",
6981 pulSize, dnDevInst,ResourceID, ulFlags);
6982
6983 return CM_Query_Arbitrator_Free_Size_Ex(pulSize, dnDevInst, ResourceID,
6984 ulFlags, NULL);
6985}
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:6993

◆ 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 6993 of file cfgmgr.c.

6999{
7001 HSTRING_TABLE StringTable = NULL;
7002 LPWSTR lpDevInst;
7003 CONFIGRET ret;
7004
7005 TRACE("CM_Query_Arbitrator_Free_Size_Ex(%p %lu %lx 0x%08lx %p)\n",
7006 pulSize, dnDevInst,ResourceID, ulFlags, hMachine);
7007
7008 if (pulSize == NULL)
7009 return CR_INVALID_POINTER;
7010
7011 if (dnDevInst == 0)
7012 return CR_INVALID_DEVINST;
7013
7014 if (ulFlags & ~CM_QUERY_ARBITRATOR_BITS)
7015 return CR_INVALID_FLAG;
7016
7017 if (hMachine != NULL)
7018 {
7019 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7020 if (BindingHandle == NULL)
7021 return CR_FAILURE;
7022
7023 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
7024 if (StringTable == 0)
7025 return CR_FAILURE;
7026 }
7027 else
7028 {
7029 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
7030 return CR_FAILURE;
7031 }
7032
7033 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
7034 if (lpDevInst == NULL)
7035 return CR_INVALID_DEVNODE;
7036
7038 {
7040 pulSize,
7041 lpDevInst,
7042 ResourceID,
7043 ulFlags);
7044 }
7046 {
7048 }
7050
7051 return ret;
7052}
DWORD WINAPI PNP_QueryArbitratorFreeSize(handle_t hBinding, DWORD *pulSize, LPWSTR pDeviceID, RESOURCEID ResourceID, DWORD ulFlags)
Definition: rpcserver.c:5061

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 7062 of file cfgmgr.c.

7065{
7066 TRACE("CM_Query_Remove_SubTree(%lx %lx)\n",
7067 dnAncestor, ulFlags);
7068
7070}

◆ 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 7080 of file cfgmgr.c.

7084{
7085 TRACE("CM_Query_Remove_SubTree_Ex(%lx %lx %p)\n",
7086 dnAncestor, ulFlags, hMachine);
7087
7089}

◆ 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 7215 of file cfgmgr.c.

7218{
7219 TRACE("CM_Reenumerate_DevNode(%lx %lx)\n",
7220 dnDevInst, ulFlags);
7221
7222 return CM_Reenumerate_DevNode_Ex(dnDevInst, ulFlags, NULL);
7223}
CONFIGRET WINAPI CM_Reenumerate_DevNode_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7230

◆ CM_Reenumerate_DevNode_Ex()

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

Definition at line 7230 of file cfgmgr.c.

7234{
7236 HSTRING_TABLE StringTable = NULL;
7237 LPWSTR lpDevInst;
7238 CONFIGRET ret;
7239
7240 FIXME("CM_Reenumerate_DevNode_Ex(%lx %lx %p)\n",
7241 dnDevInst, ulFlags, hMachine);
7242
7243 if (dnDevInst == 0)
7244 return CR_INVALID_DEVNODE;
7245
7246 if (ulFlags & ~CM_REENUMERATE_BITS)
7247 return CR_INVALID_FLAG;
7248
7249 if (hMachine != NULL)
7250 {
7251 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7252 if (BindingHandle == NULL)
7253 return CR_FAILURE;
7254
7255 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
7256 if (StringTable == 0)
7257 return CR_FAILURE;
7258 }
7259 else
7260 {
7261 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
7262 return CR_FAILURE;
7263 }
7264
7265 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
7266 if (lpDevInst == NULL)
7267 return CR_INVALID_DEVNODE;
7268
7270 {
7272 PNP_DEVINST_REENUMERATE,
7273 ulFlags,
7274 lpDevInst,
7275 NULL);
7276 }
7278 {
7280 }
7282
7283 return ret;
7284}
#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 7292 of file cfgmgr.c.

7295{
7296 TRACE("CM_Register_Device_Driver(%lx 0x%08lx)\n",
7297 dnDevInst, ulFlags);
7298
7299 return CM_Register_Device_Driver_Ex(dnDevInst, ulFlags, NULL);
7300}
CONFIGRET WINAPI CM_Register_Device_Driver_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7308

◆ 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 7308 of file cfgmgr.c.

7312{
7314 HSTRING_TABLE StringTable = NULL;
7315 LPWSTR lpDevInst;
7316 CONFIGRET ret;
7317
7318 TRACE("CM_Register_Device_Driver_Ex(%lx 0x%08lx %p)\n",
7319 dnDevInst, ulFlags, hMachine);
7320
7321 if (dnDevInst == 0)
7322 return CR_INVALID_DEVNODE;
7323
7324 if (ulFlags & ~CM_REGISTER_DEVICE_DRIVER_BITS)
7325 return CR_INVALID_FLAG;
7326
7327 if (hMachine != NULL)
7328 {
7329 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7330 if (BindingHandle == NULL)
7331 return CR_FAILURE;
7332
7333 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
7334 if (StringTable == 0)
7335 return CR_FAILURE;
7336 }
7337 else
7338 {
7339 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
7340 return CR_FAILURE;
7341 }
7342
7343 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
7344 if (lpDevInst == NULL)
7345 return CR_INVALID_DEVNODE;
7346
7348 {
7350 lpDevInst,
7351 ulFlags);
7352 }
7354 {
7356 }
7358
7359 return ret;
7360}
DWORD WINAPI PNP_RegisterDriver(handle_t hBinding, LPWSTR pszDeviceID, DWORD ulFlags)
Definition: rpcserver.c:3861
#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 7414 of file cfgmgr.c.

7422{
7423 LPWSTR pszReferenceW = NULL;
7424 LPWSTR pszDeviceInterfaceW;
7425 ULONG ulLength;
7426 CONFIGRET ret;
7427
7428 TRACE("CM_Register_Device_Interface_ExA(%lx %s %s %p %p %lx %p)\n",
7429 dnDevInst, debugstr_guid(InterfaceClassGuid), debugstr_a(pszReference),
7430 pszDeviceInterface, pulLength, ulFlags, hMachine);
7431
7432 if (pulLength == NULL || pszDeviceInterface == NULL)
7433 return CR_INVALID_POINTER;
7434
7435 if (pszReference != NULL)
7436 {
7437 if (pSetupCaptureAndConvertAnsiArg(pszReference, &pszReferenceW))
7438 return CR_INVALID_DATA;
7439 }
7440
7441 ulLength = *pulLength;
7442
7443 pszDeviceInterfaceW = HeapAlloc(GetProcessHeap(), 0, ulLength * sizeof(WCHAR));
7444 if (pszDeviceInterfaceW == NULL)
7445 {
7447 goto Done;
7448 }
7449
7452 pszReferenceW,
7453 pszDeviceInterfaceW,
7454 &ulLength,
7455 ulFlags,
7456 hMachine);
7457 if (ret == CR_SUCCESS)
7458 {
7460 0,
7461 pszDeviceInterfaceW,
7462 ulLength,
7463 pszDeviceInterface,
7464 *pulLength,
7465 NULL,
7466 NULL) == 0)
7467 ret = CR_FAILURE;
7468 }
7469
7470 *pulLength = ulLength;
7471
7472Done:
7473 if (pszDeviceInterfaceW != NULL)
7474 HeapFree(GetProcessHeap(), 0, pszDeviceInterfaceW);
7475
7476 if (pszReferenceW != NULL)
7477 MyFree(pszReferenceW);
7478
7479 return ret;
7480}
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:7488

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 7488 of file cfgmgr.c.

7496{
7498 HSTRING_TABLE StringTable = NULL;
7499 LPWSTR lpDevInst;
7500 ULONG ulTransferLength;
7501 CONFIGRET ret;
7502
7503 TRACE("CM_Register_Device_Interface_ExW(%lx %s %s %p %p %lx %p)\n",
7504 dnDevInst, debugstr_guid(InterfaceClassGuid), debugstr_w(pszReference),
7505 pszDeviceInterface, pulLength, ulFlags, hMachine);
7506
7507 if (dnDevInst == 0)
7508 return CR_INVALID_DEVNODE;
7509
7510 if (InterfaceClassGuid == NULL ||
7511 pszDeviceInterface == NULL ||
7512 pulLength == NULL)
7513 return CR_INVALID_POINTER;
7514
7515 if (ulFlags != 0)
7516 return CR_INVALID_FLAG;
7517
7518 if (hMachine != NULL)
7519 {
7520 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7521 if (BindingHandle == NULL)
7522 return CR_FAILURE;
7523
7524 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
7525 if (StringTable == 0)
7526 return CR_FAILURE;
7527 }
7528 else
7529 {
7530 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
7531 return CR_FAILURE;
7532 }
7533
7534 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
7535 if (lpDevInst == NULL)
7536 return CR_INVALID_DEVNODE;
7537
7538 ulTransferLength = *pulLength;
7539
7541 {
7543 lpDevInst,
7545 (LPWSTR)pszReference,
7546 pszDeviceInterface,
7547 pulLength,
7548 &ulTransferLength,
7549 0);
7550 }
7552 {
7554 }
7556
7557 return ret;
7558}
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:2781

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 7368 of file cfgmgr.c.

7375{
7376 TRACE("CM_Register_Device_InterfaceA(%lx %s %s %p %p %lx)\n",
7378 pszReference, pszDeviceInterface, pulLength, ulFlags);
7379
7381 pszReference, pszDeviceInterface,
7382 pulLength, ulFlags, NULL);
7383}
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:7414

◆ 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 7391 of file cfgmgr.c.

7398{
7399 TRACE("CM_Register_Device_InterfaceW(%lx %s %s %p %p %lx)\n",
7401 debugstr_w(pszReference), pszDeviceInterface, pulLength, ulFlags);
7402
7404 pszReference, pszDeviceInterface,
7405 pulLength, ulFlags, NULL);
7406}

◆ CM_Remove_SubTree()

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

Definition at line 7568 of file cfgmgr.c.

7571{
7572 TRACE("CM_Remove_SubTree(%lx %lx)\n",
7573 dnAncestor, ulFlags);
7574
7576}

◆ CM_Remove_SubTree_Ex()

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

Definition at line 7586 of file cfgmgr.c.

7590{
7591 TRACE("CM_Remove_SubTree_Ex(%lx %lx %p)\n",
7592 dnAncestor, ulFlags, hMachine);
7593
7595}

◆ 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 7643 of file cfgmgr.c.

7650{
7651 LPWSTR lpLocalVetoName = NULL;
7652 CONFIGRET ret;
7653
7654 TRACE("CM_Request_Device_Eject_ExA(%lx %p %p %lu %lx %p)\n",
7655 dnDevInst, pVetoType, pszVetoName, ulNameLength, ulFlags, hMachine);
7656
7657 if (ulNameLength != 0)
7658 {
7659 if (pszVetoName == NULL)
7660 return CR_INVALID_POINTER;
7661
7662 lpLocalVetoName = HeapAlloc(GetProcessHeap(), 0, ulNameLength * sizeof(WCHAR));
7663 if (lpLocalVetoName == NULL)
7664 return CR_OUT_OF_MEMORY;
7665 }
7666
7667 ret = CM_Request_Device_Eject_ExW(dnDevInst, pVetoType, lpLocalVetoName,
7668 ulNameLength, ulFlags, hMachine);
7669 if (ret == CR_REMOVE_VETOED && ulNameLength != 0)
7670 {
7672 0,
7673 lpLocalVetoName,
7674 ulNameLength,
7675 pszVetoName,
7676 ulNameLength,
7677 NULL,
7678 NULL) == 0)
7679 ret = CR_FAILURE;
7680 }
7681
7682 HeapFree(GetProcessHeap(), 0, lpLocalVetoName);
7683
7684 return ret;
7685}
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:7693

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 7693 of file cfgmgr.c.

7700{
7702 HSTRING_TABLE StringTable = NULL;
7703 LPWSTR lpDevInst;
7704 CONFIGRET ret;
7705
7706 TRACE("CM_Request_Device_Eject_ExW(%lx %p %p %lu %lx %p)\n",
7707 dnDevInst, pVetoType, pszVetoName, ulNameLength, ulFlags, hMachine);
7708
7709 if (dnDevInst == 0)
7710 return CR_INVALID_DEVNODE;
7711
7712 if (ulFlags != 0)
7713 return CR_INVALID_FLAG;
7714
7715 if (pszVetoName == NULL && ulNameLength != 0)
7716 return CR_INVALID_POINTER;
7717
7718 /* Windows 2003 SP2 ignores pszVetoName when ulNameLength is zero
7719 * and behaves like when pszVetoName is NULL */
7720 if (ulNameLength == 0)
7721 pszVetoName = NULL;
7722
7723 if (hMachine != NULL)
7724 {
7725 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7726 if (BindingHandle == NULL)
7727 return CR_FAILURE;
7728
7729 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
7730 if (StringTable == 0)
7731 return CR_FAILURE;
7732 }
7733 else
7734 {
7735 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
7736 return CR_FAILURE;
7737 }
7738
7739 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
7740 if (lpDevInst == NULL)
7741 return CR_INVALID_DEVNODE;
7742
7744 {
7746 lpDevInst,
7747 pVetoType,
7748 pszVetoName,
7749 ulNameLength,
7750 ulFlags);
7751 }
7753 {
7755 }
7757
7758 return ret;
7759}
DWORD WINAPI PNP_RequestDeviceEject(handle_t hBinding, LPWSTR pszDeviceID, PPNP_VETO_TYPE pVetoType, LPWSTR pszVetoName, DWORD ulNameLength, DWORD ulFlags)
Definition: rpcserver.c:3933

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 7603 of file cfgmgr.c.

7609{
7610 TRACE("CM_Request_Device_EjectA(%lx %p %p %lu %lx)\n",
7611 dnDevInst, pVetoType, pszVetoName, ulNameLength, ulFlags);
7612
7613 return CM_Request_Device_Eject_ExA(dnDevInst, pVetoType, pszVetoName,
7614 ulNameLength, ulFlags, NULL);
7615}
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:7643

◆ 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 7623 of file cfgmgr.c.

7629{
7630 TRACE("CM_Request_Device_EjectW(%lx %p %p %lu %lx)\n",
7631 dnDevInst, pVetoType, pszVetoName, ulNameLength, ulFlags);
7632
7633 return CM_Request_Device_Eject_ExW(dnDevInst, pVetoType, pszVetoName,
7634 ulNameLength, ulFlags, NULL);
7635}

Referenced by SafeRemoveDevice().

◆ CM_Request_Eject_PC()

CMAPI CONFIGRET WINAPI CM_Request_Eject_PC ( VOID  )

Definition at line 7767 of file cfgmgr.c.

7768{
7769 TRACE("CM_Request_Eject_PC()\n");
7770
7772}
CONFIGRET WINAPI CM_Request_Eject_PC_Ex(_In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7780

◆ CM_Request_Eject_PC_Ex()

CMAPI CONFIGRET WINAPI CM_Request_Eject_PC_Ex ( _In_opt_ HMACHINE  hMachine)

Definition at line 7780 of file cfgmgr.c.

7782{
7784 CONFIGRET ret;
7785
7786 TRACE("CM_Request_Eject_PC_Ex(%p)\n", hMachine);
7787
7788 if (hMachine != NULL)
7789 {
7790 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7791 if (BindingHandle == NULL)
7792 return CR_FAILURE;
7793 }
7794 else
7795 {
7797 return CR_FAILURE;
7798 }
7799
7801 {
7803 }
7805 {
7807 }
7809
7810 return ret;
7811}
DWORD WINAPI PNP_RequestEjectPC(handle_t hBinding)
Definition: rpcserver.c:4037

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 7819 of file cfgmgr.c.

7821{
7822 TRACE("CM_Run_Detection(%lx)\n", ulFlags);
7823
7824 return CM_Run_Detection_Ex(ulFlags, NULL);
7825}
CONFIGRET WINAPI CM_Run_Detection_Ex(_In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:7833

◆ CM_Run_Detection_Ex()

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

Definition at line 7833 of file cfgmgr.c.

7836{
7838 CONFIGRET ret;
7839
7840 TRACE("CM_Run_Detection_Ex(%lx %p)\n",
7841 ulFlags, hMachine);
7842
7843 if (!pSetupIsUserAdmin())
7844 return CR_ACCESS_DENIED;
7845
7846 if (ulFlags & ~CM_DETECT_BITS)
7847 return CR_INVALID_FLAG;
7848
7849 if (hMachine != NULL)
7850 {
7851 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
7852 if (BindingHandle == NULL)
7853 return CR_FAILURE;
7854 }
7855 else
7856 {
7858 return CR_FAILURE;
7859 }
7860
7862 {
7864 ulFlags);
7865 }
7867 {
7869 }
7871
7872 return ret;
7873}
CONFIGRET WINAPI PNP_RunDetection(handle_t hBinding, DWORD ulFlags)
Definition: rpcserver.c:5078
#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 7881 of file cfgmgr.c.

7888{
7890 ULONG ulType;
7891 CONFIGRET ret;
7892
7893 TRACE("CM_Set_Class_Registry_PropertyA(%p %lx %p %lu %lx %p)\n",
7894 ClassGuid, ulProperty, Buffer, ulLength, ulFlags, hMachine);
7895
7896 if (ClassGuid == NULL)
7897 return CR_INVALID_POINTER;
7898
7899 if ((Buffer == NULL) && (ulLength != 0))
7900 return CR_INVALID_POINTER;
7901
7902 if (ulFlags != 0)
7903 return CR_INVALID_FLAG;
7904
7905 if (Buffer == NULL)
7906 {
7908 ulProperty,
7909 Buffer,
7910 ulLength,
7911 ulFlags,
7912 hMachine);
7913 }
7914 else
7915 {
7916 /* Get property type */
7917 ulType = GetRegistryPropertyType(ulProperty);
7918
7919 /* Allocate buffer if needed */
7920 if ((ulType == REG_SZ) || (ulType == REG_MULTI_SZ))
7921 {
7922 lpBuffer = MyMalloc(ulLength * sizeof(WCHAR));
7923 if (lpBuffer == NULL)
7924 {
7926 }
7927 else
7928 {
7930 ulLength, lpBuffer, ulLength))
7931 {
7933 ret = CR_FAILURE;
7934 }
7935 else
7936 {
7938 ulProperty,
7939 lpBuffer,
7940 ulLength * sizeof(WCHAR),
7941 ulFlags,
7942 hMachine);
7944 }
7945 }
7946 }
7947 else
7948 {
7950 ulProperty,
7951 Buffer,
7952 ulLength,
7953 ulFlags,
7954 hMachine);
7955 }
7956
7957 }
7958
7959 return ret;
7960}
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:7968
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 7968 of file cfgmgr.c.

7975{
7977 WCHAR szGuidString[PNP_MAX_GUID_STRING_LEN + 1];
7978 ULONG ulType = 0;
7979 PSECURITY_DESCRIPTOR pSecurityDescriptor = NULL;
7980 ULONG SecurityDescriptorSize = 0;
7981 CONFIGRET ret;
7982
7983 TRACE("CM_Set_Class_Registry_PropertyW(%p %lx %p %lu %lx %p)\n",
7984 ClassGuid, ulProperty, Buffer, ulLength, ulFlags, hMachine);
7985
7986 if (ClassGuid == NULL)
7987 return CR_INVALID_POINTER;
7988
7989 if ((Buffer == NULL) && (ulLength != 0))
7990 return CR_INVALID_POINTER;
7991
7992 if (ulFlags != 0)
7993 return CR_INVALID_FLAG;
7994
7995 if (pSetupStringFromGuid(ClassGuid,
7996 szGuidString,
7998 return CR_INVALID_DATA;
7999
8000 if ((ulProperty < CM_CRP_MIN) || (ulProperty > CM_CRP_MAX))
8001 return CR_INVALID_PROPERTY;
8002
8003 if (hMachine != NULL)
8004 {
8005 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8006 if (BindingHandle == NULL)
8007 return CR_FAILURE;
8008 }
8009 else
8010 {
8012 return CR_FAILURE;
8013 }
8014
8015 ulType = GetRegistryPropertyType(ulProperty);
8016 if ((ulType == REG_DWORD) && (ulLength != sizeof(DWORD)))
8017 return CR_INVALID_DATA;
8018
8019 if (ulProperty == CM_CRP_SECURITY_SDS)
8020 {
8021 if (ulLength != 0)
8022 {
8025 &pSecurityDescriptor,
8026 &SecurityDescriptorSize))
8027 {
8028 ERR("ConvertStringSecurityDescriptorToSecurityDescriptorW() failed (Error %lu)\n", GetLastError());
8029 return CR_INVALID_DATA;
8030 }
8031
8032 Buffer = (PCVOID)pSecurityDescriptor;
8033 ulLength = SecurityDescriptorSize;
8034 }
8035
8036 ulProperty = CM_CRP_SECURITY;
8038 }
8039
8041 {
8043 szGuidString,
8044 ulProperty,
8045 ulType,
8046 (LPBYTE)Buffer,
8047 ulLength,
8048 ulFlags);
8049 }
8051 {
8053 }
8055
8056 if (pSecurityDescriptor)
8057 LocalFree(pSecurityDescriptor);
8058
8059 return ret;
8060}
DWORD WINAPI PNP_SetClassRegProp(handle_t hBinding, LPWSTR pszClassGuid, DWORD ulProperty, DWORD ulDataType, BYTE *Buffer, PNP_PROP_SIZE ulLength, DWORD ulFlags)
Definition: rpcserver.c:2980
#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 8068 of file cfgmgr.c.

8072{
8073 TRACE("CM_Set_DevNode_Problem(%lx %lx %lx)\n",
8074 dnDevInst, ulProblem, ulFlags);
8075
8076 return CM_Set_DevNode_Problem_Ex(dnDevInst, ulProblem, ulFlags, NULL);
8077}
CONFIGRET WINAPI CM_Set_DevNode_Problem_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulProblem, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8085

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 8085 of file cfgmgr.c.

8090{
8092 HSTRING_TABLE StringTable = NULL;
8093 LPWSTR lpDevInst;
8094 CONFIGRET ret;
8095
8096 TRACE("CM_Set_DevNode_Problem_Ex(%lx %lx %lx %p)\n",
8097 dnDevInst, ulProblem, ulFlags, hMachine);
8098
8099 if (dnDevInst == 0)
8100 return CR_INVALID_DEVNODE;
8101
8102 if (ulFlags & ~CM_SET_DEVNODE_PROBLEM_BITS)
8103 return CR_INVALID_FLAG;
8104
8105 if (hMachine != NULL)
8106 {
8107 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8108 if (BindingHandle == NULL)
8109 return CR_FAILURE;
8110
8111 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
8112 if (StringTable == 0)
8113 return CR_FAILURE;
8114 }
8115 else
8116 {
8117 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
8118 return CR_FAILURE;
8119 }
8120
8121 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
8122 if (lpDevInst == NULL)
8123 return CR_INVALID_DEVNODE;
8124
8126 {
8128 lpDevInst,
8129 ulProblem,
8130 ulFlags);
8131 }
8133 {
8135 }
8137
8138 return ret;
8139}
DWORD WINAPI PNP_SetDeviceProblem(handle_t hBinding, LPWSTR pDeviceID, DWORD ulProblem, DWORD ulFlags)
Definition: rpcserver.c:3616
#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 8189 of file cfgmgr.c.

8196{
8199 ULONG ulType;
8200
8201 FIXME("CM_Set_DevNode_Registry_Property_ExA(%lx %lu %p %lx %lx %p)\n",
8202 dnDevInst, ulProperty, Buffer, ulLength, ulFlags, hMachine);
8203
8204 if (Buffer == NULL && ulLength != 0)
8205 return CR_INVALID_POINTER;
8206
8207 if (ulProperty < CM_DRP_MIN || ulProperty > CM_DRP_MAX)
8208 return CR_INVALID_PROPERTY;
8209
8210 if (Buffer == NULL)
8211 {
8213 ulProperty,
8214 NULL,
8215 0,
8216 ulFlags,
8217 hMachine);
8218 }
8219 else
8220 {
8221 /* Get property type */
8222 ulType = GetRegistryPropertyType(ulProperty);
8223
8224 /* Allocate buffer if needed */
8225 if (ulType == REG_SZ ||
8227 {
8228 lpBuffer = MyMalloc(ulLength * sizeof(WCHAR));
8229 if (lpBuffer == NULL)
8230 {
8232 }
8233 else
8234 {
8236 ulLength, lpBuffer, ulLength))
8237 {
8239 ret = CR_FAILURE;
8240 }
8241 else
8242 {
8244 ulProperty,
8245 lpBuffer,
8246 ulLength * sizeof(WCHAR),
8247 ulFlags,
8248 hMachine);
8250 }
8251 }
8252 }
8253 else
8254 {
8256 ulProperty,
8257 Buffer,
8258 ulLength,
8259 ulFlags,
8260 hMachine);
8261 }
8262
8264 }
8265
8266 return ret;
8267}
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:8275

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 8275 of file cfgmgr.c.

8282{
8284 HSTRING_TABLE StringTable = NULL;
8285 LPWSTR lpDevInst;
8286 ULONG ulType;
8287 CONFIGRET ret;
8288
8289 TRACE("CM_Set_DevNode_Registry_Property_ExW(%lx %lu %p %lx %lx %p)\n",
8290 dnDevInst, ulProperty, Buffer, ulLength, ulFlags, hMachine);
8291
8292 if (dnDevInst == 0)
8293 return CR_INVALID_DEVNODE;
8294
8295 if (ulProperty < CM_DRP_MIN || ulProperty > CM_DRP_MAX)
8296 return CR_INVALID_PROPERTY;
8297
8298 if (Buffer != NULL && ulLength == 0)
8299 return CR_INVALID_POINTER;
8300
8301 if (ulFlags != 0)
8302 return CR_INVALID_FLAG;
8303
8304 if (hMachine != NULL)
8305 {
8306 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8307 if (BindingHandle == NULL)
8308 return CR_FAILURE;
8309
8310 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
8311 if (StringTable == 0)
8312 return CR_FAILURE;
8313 }
8314 else
8315 {
8316 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
8317 return CR_FAILURE;
8318 }
8319
8320 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
8321 if (lpDevInst == NULL)
8322 return CR_INVALID_DEVNODE;
8323
8324 /* Get property type */
8325 ulType = GetRegistryPropertyType(ulProperty);
8326
8328 {
8330 lpDevInst,
8331 ulProperty,
8332 ulType,
8333 (BYTE *)Buffer,
8334 ulLength,
8335 ulFlags);
8336 }
8338 {
8340 }
8342
8343 return ret;
8344}
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 8147 of file cfgmgr.c.

8153{
8154 TRACE("CM_Set_DevNode_Registry_PropertyA(%lx %lu %p %lx %lx)\n",
8155 dnDevInst, ulProperty, Buffer, ulLength, ulFlags);
8156
8157 return CM_Set_DevNode_Registry_Property_ExA(dnDevInst, ulProperty,
8158 Buffer, ulLength,
8159 ulFlags, NULL);
8160}
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:8189

◆ 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 8168 of file cfgmgr.c.

8174{
8175 TRACE("CM_Set_DevNode_Registry_PropertyW(%lx %lu %p %lx %lx)\n",
8176 dnDevInst, ulProperty, Buffer, ulLength, ulFlags);
8177
8178 return CM_Set_DevNode_Registry_Property_ExW(dnDevInst, ulProperty,
8179 Buffer, ulLength,
8180 ulFlags, NULL);
8181}

◆ CM_Set_HW_Prof()

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

Definition at line 8352 of file cfgmgr.c.

8355{
8356 TRACE("CM_Set_HW_Prof(%lu %lx)\n",
8357 ulHardwareProfile, ulFlags);
8358
8359 return CM_Set_HW_Prof_Ex(ulHardwareProfile, ulFlags, NULL);
8360}
CONFIGRET WINAPI CM_Set_HW_Prof_Ex(_In_ ULONG ulHardwareProfile, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8368

◆ 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 8368 of file cfgmgr.c.

8372{
8374 CONFIGRET ret;
8375
8376 TRACE("CM_Set_HW_Prof_Ex(%lu %lx %p)\n",
8377 ulHardwareProfile, ulFlags, hMachine);
8378
8379 if (!pSetupIsUserAdmin())
8380 return CR_ACCESS_DENIED;
8381
8382 if (ulFlags != 0)
8383 return CR_INVALID_FLAG;
8384
8385 if (hMachine != NULL)
8386 {
8387 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8388 if (BindingHandle == NULL)
8389 return CR_FAILURE;
8390 }
8391 else
8392 {
8394 return CR_FAILURE;
8395 }
8396
8398 {
8399 ret = PNP_SetHwProf(BindingHandle, ulHardwareProfile, ulFlags);
8400 }
8402 {
8404 }
8406
8407 return ret;
8408}
DWORD WINAPI PNP_SetHwProf(handle_t hBinding, DWORD ulHardwareProfile, DWORD ulFlags)
Definition: rpcserver.c:5034

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 8454 of file cfgmgr.c.

8460{
8461 DEVINSTID_W pszDevIdW = NULL;
8463
8464 TRACE("CM_Set_HW_Prof_Flags_ExA(%s %lu %lu %lx %p)\n",
8465 debugstr_a(szDevInstName), ulConfig, ulValue, ulFlags, hMachine);
8466
8467 if (szDevInstName != NULL)
8468 {
8469 if (pSetupCaptureAndConvertAnsiArg(szDevInstName, &pszDevIdW))
8470 return CR_INVALID_DEVICE_ID;
8471 }
8472
8473 ret = CM_Set_HW_Prof_Flags_ExW(pszDevIdW, ulConfig, ulValue,
8474 ulFlags, hMachine);
8475
8476 if (pszDevIdW != NULL)
8477 MyFree(pszDevIdW);
8478
8479 return ret;
8480}
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:8488

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 8488 of file cfgmgr.c.

8494{
8496 CONFIGRET ret;
8497
8498 FIXME("CM_Set_HW_Prof_Flags_ExW(%s %lu %lu %lx %p)\n",
8499 debugstr_w(szDevInstName), ulConfig, ulValue, ulFlags, hMachine);
8500
8501 if (szDevInstName == NULL)
8502 return CR_INVALID_POINTER;
8503
8504 if (ulFlags & ~ CM_SET_HW_PROF_FLAGS_BITS)
8505 return CR_INVALID_FLAG;
8506
8507 /* FIXME: Check whether szDevInstName is valid */
8508
8509 if (hMachine != NULL)
8510 {
8511 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8512 if (BindingHandle == NULL)
8513 return CR_FAILURE;
8514 }
8515 else
8516 {
8518 return CR_FAILURE;
8519 }
8520
8522 {
8523 ret = PNP_HwProfFlags(BindingHandle, PNP_SET_HWPROFFLAGS, szDevInstName,
8524 ulConfig, &ulValue, NULL, NULL, 0, 0);
8525 }
8527 {
8529 }
8531
8532 return ret;
8533}
#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 8416 of file cfgmgr.c.

8421{
8422 TRACE("CM_Set_HW_Prof_FlagsA(%s %lu %lu %lx)\n",
8423 debugstr_a(szDevInstName), ulConfig, ulValue, ulFlags);
8424
8425 return CM_Set_HW_Prof_Flags_ExA(szDevInstName, ulConfig, ulValue,
8426 ulFlags, NULL);
8427}
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:8454

◆ 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 8435 of file cfgmgr.c.

8440{
8441 TRACE("CM_Set_HW_Prof_FlagsW(%s %lu %lu %lx)\n",
8442 debugstr_w(szDevInstName), ulConfig, ulValue, ulFlags);
8443
8444 return CM_Set_HW_Prof_Flags_ExW(szDevInstName, ulConfig, ulValue,
8445 ulFlags, NULL);
8446}

◆ CM_Setup_DevNode()

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

Definition at line 8541 of file cfgmgr.c.

8544{
8545 TRACE("CM_Setup_DevNode(%lx %lx)\n",
8546 dnDevInst, ulFlags);
8547
8548 return CM_Setup_DevNode_Ex(dnDevInst, ulFlags, NULL);
8549}
CONFIGRET WINAPI CM_Setup_DevNode_Ex(_In_ DEVINST dnDevInst, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8557

◆ CM_Setup_DevNode_Ex()

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

Definition at line 8557 of file cfgmgr.c.

8561{
8563 HSTRING_TABLE StringTable = NULL;
8564 LPWSTR lpDevInst;
8565 CONFIGRET ret;
8566
8567 FIXME("CM_Setup_DevNode_Ex(%lx %lx %p)\n",
8568 dnDevInst, ulFlags, hMachine);
8569
8570 if (!pSetupIsUserAdmin())
8571 return CR_ACCESS_DENIED;
8572
8573 if (dnDevInst == 0)
8574 return CR_INVALID_DEVNODE;
8575
8576 if (ulFlags & ~CM_SETUP_BITS)
8577 return CR_INVALID_FLAG;
8578
8579 if (hMachine != NULL)
8580 {
8581 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8582 if (BindingHandle == NULL)
8583 return CR_FAILURE;
8584
8585 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
8586 if (StringTable == 0)
8587 return CR_FAILURE;
8588 }
8589 else
8590 {
8591 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
8592 return CR_FAILURE;
8593 }
8594
8595 lpDevInst = pSetupStringTableStringFromId(StringTable, dnDevInst);
8596 if (lpDevInst == NULL)
8597 return CR_INVALID_DEVNODE;
8598
8600 {
8602 PNP_DEVINST_SETUP,
8603 ulFlags,
8604 lpDevInst,
8605 NULL);
8606 }
8608 {
8610 }
8612
8613 return ret;
8614}
#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 8622 of file cfgmgr.c.

8627{
8628 PINTERNAL_RANGE_LIST pRangeList;
8629 PINTERNAL_RANGE pRange;
8630 PLIST_ENTRY ListEntry;
8632
8633 FIXME("CM_Test_Range_Available(%I64u %I64u %p %lx)\n",
8634 ullStartValue, ullEndValue, rlh, ulFlags);
8635
8636 pRangeList = (PINTERNAL_RANGE_LIST)rlh;
8637
8638 if (!IsValidRangeList(pRangeList))
8639 return CR_INVALID_RANGE_LIST;
8640
8641 if (ulFlags != 0)
8642 return CR_INVALID_FLAG;
8643
8644 if (ullStartValue > ullEndValue)
8645 return CR_INVALID_RANGE;
8646
8647 /* Lock the range list */
8648 WaitForSingleObject(pRangeList->hMutex, INFINITE);
8649
8650 /* Check the ranges */
8651 ListEntry = &pRangeList->ListHead;
8652 while (ListEntry->Flink == &pRangeList->ListHead)
8653 {
8654 pRange = CONTAINING_RECORD(ListEntry, INTERNAL_RANGE, ListEntry);
8655
8656 /* Check if the start value is within the current range */
8657 if ((ullStartValue >= pRange->ullStart) && (ullStartValue <= pRange->ullEnd))
8658 {
8659 ret = CR_FAILURE;
8660 break;
8661 }
8662
8663 /* Check if the end value is within the current range */
8664 if ((ullEndValue >= pRange->ullStart) && (ullEndValue <= pRange->ullEnd))
8665 {
8666 ret = CR_FAILURE;
8667 break;
8668 }
8669
8670 /* Check if the current range lies inside of the start-end interval */
8671 if ((ullStartValue <= pRange->ullStart) && (ullEndValue >= pRange->ullEnd))
8672 {
8673 ret = CR_FAILURE;
8674 break;
8675 }
8676
8677 ListEntry = ListEntry->Flink;
8678 }
8679
8680 /* Unlock the range list */
8681 ReleaseMutex(pRangeList->hMutex);
8682
8683 return ret;
8684}

◆ CM_Uninstall_DevNode()

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

Definition at line 8692 of file cfgmgr.c.

8695{
8696 TRACE("CM_Uninstall_DevNode(%lx %lx)\n",
8697 dnPhantom, ulFlags);
8698
8699 return CM_Uninstall_DevNode_Ex(dnPhantom, ulFlags, NULL);
8700}
CONFIGRET WINAPI CM_Uninstall_DevNode_Ex(_In_ DEVINST dnPhantom, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8708

◆ CM_Uninstall_DevNode_Ex()

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

Definition at line 8708 of file cfgmgr.c.

8712{
8714 HSTRING_TABLE StringTable = NULL;
8715 LPWSTR lpDevInst;
8716 CONFIGRET ret;
8717
8718 TRACE("CM_Uninstall_DevNode_Ex(%lx %lx %p)\n",
8719 dnPhantom, ulFlags, hMachine);
8720
8721 if (dnPhantom == 0)
8722 return CR_INVALID_DEVNODE;
8723
8724 if (ulFlags != 0)
8725 return CR_INVALID_FLAG;
8726
8727 if (hMachine != NULL)
8728 {
8729 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8730 if (BindingHandle == NULL)
8731 return CR_FAILURE;
8732
8733 StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
8734 if (StringTable == 0)
8735 return CR_FAILURE;
8736 }
8737 else
8738 {
8739 if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
8740 return CR_FAILURE;
8741 }
8742
8743 lpDevInst = pSetupStringTableStringFromId(StringTable, dnPhantom);
8744 if (lpDevInst == NULL)
8745 return CR_INVALID_DEVNODE;
8746
8748 {
8750 lpDevInst,
8751 ulFlags);
8752 }
8754 {
8756 }
8758
8759 return ret;
8760}
DWORD WINAPI PNP_UninstallDevInst(handle_t hBinding, LPWSTR pDeviceID, DWORD ulFlags)
Definition: rpcserver.c:3699

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 8802 of file cfgmgr.c.

8806{
8807 LPWSTR pszDeviceInterfaceW = NULL;
8808 CONFIGRET ret;
8809
8810 TRACE("CM_Unregister_Device_Interface_ExA(%s %lx %p)\n",
8811 debugstr_a(pszDeviceInterface), ulFlags, hMachine);
8812
8813 if (pszDeviceInterface == NULL)
8814 return CR_INVALID_POINTER;
8815
8816 if (pSetupCaptureAndConvertAnsiArg(pszDeviceInterface, &pszDeviceInterfaceW))
8817 return CR_INVALID_DATA;
8818
8819 ret = CM_Unregister_Device_Interface_ExW(pszDeviceInterfaceW,
8820 ulFlags, hMachine);
8821
8822 if (pszDeviceInterfaceW != NULL)
8823 MyFree(pszDeviceInterfaceW);
8824
8825 return ret;
8826}
CONFIGRET WINAPI CM_Unregister_Device_Interface_ExW(_In_ LPCWSTR pszDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8834

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 8834 of file cfgmgr.c.

8838{
8840 CONFIGRET ret;
8841
8842 TRACE("CM_Unregister_Device_Interface_ExW(%s %lx %p)\n",
8843 debugstr_w(pszDeviceInterface), ulFlags, hMachine);
8844
8845 if (pszDeviceInterface == NULL)
8846 return CR_INVALID_POINTER;
8847
8848 if (ulFlags != 0)
8849 return CR_INVALID_FLAG;
8850
8851 if (hMachine != NULL)
8852 {
8853 BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
8854 if (BindingHandle == NULL)
8855 return CR_FAILURE;
8856 }
8857 else
8858 {
8860 return CR_FAILURE;
8861 }
8862
8864 {
8866 (LPWSTR)pszDeviceInterface,
8867 ulFlags);
8868 }
8870 {
8872 }
8874
8875 return ret;
8876}
DWORD WINAPI PNP_UnregisterDeviceClassAssociation(handle_t hBinding, LPWSTR pszInterfaceDevice, DWORD ulFlags)
Definition: rpcserver.c:2841

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 8768 of file cfgmgr.c.

8771{
8772 TRACE("CM_Unregister_Device_InterfaceA(%s %lx)\n",
8773 debugstr_a(pszDeviceInterface), ulFlags);
8774
8775 return CM_Unregister_Device_Interface_ExA(pszDeviceInterface,
8776 ulFlags, NULL);
8777}
CONFIGRET WINAPI CM_Unregister_Device_Interface_ExA(_In_ LPCSTR pszDeviceInterface, _In_ ULONG ulFlags, _In_opt_ HMACHINE hMachine)
Definition: cfgmgr.c:8802

◆ CM_Unregister_Device_InterfaceW()

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

Definition at line 8785 of file cfgmgr.c.

8788{
8789 TRACE("CM_Unregister_Device_InterfaceW(%s %lx)\n",
8790 debugstr_w(pszDeviceInterface), ulFlags);
8791
8792 return CM_Unregister_Device_Interface_ExW(pszDeviceInterface,
8793 ulFlags, NULL);
8794}

◆ 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:446
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
Definition: wincrypt.h:6081

Referenced by CommonInstall().