Headers diff for setupapi.dll between 5.2.3790.3959-Windows 5.0 and 6.0.6002.18005-Windows 6.0 versions



 cfgmgr32.h (5.2.3790.3959-Windows 5.0)   cfgmgr32.h (6.0.6002.18005-Windows 6.0) 
skipping to change at line 60 skipping to change at line 60
#define MAX_PROFILE_LEN 80 #define MAX_PROFILE_LEN 80
#define MAX_CONFIG_VALUE 9999 #define MAX_CONFIG_VALUE 9999
#define MAX_INSTANCE_VALUE 9999 #define MAX_INSTANCE_VALUE 9999
#define MAX_MEM_REGISTERS 9 // Win95 compatibility--not applicable to 32 -bit ConfigMgr #define MAX_MEM_REGISTERS 9 // Win95 compatibility--not applicable to 32 -bit ConfigMgr
#define MAX_IO_PORTS 20 // Win95 compatibility--not applicable to 32 -bit ConfigMgr #define MAX_IO_PORTS 20 // Win95 compatibility--not applicable to 32 -bit ConfigMgr
#define MAX_IRQS 7 // Win95 compatibility--not applicable to 32 -bit ConfigMgr #define MAX_IRQS 7 // Win95 compatibility--not applicable to 32 -bit ConfigMgr
#define MAX_DMA_CHANNELS 7 // Win95 compatibility--not applicable to 32 -bit ConfigMgr #define MAX_DMA_CHANNELS 7 // Win95 compatibility--not applicable to 32 -bit ConfigMgr
#define DWORD_MAX 0xFFFFFFFF #define DWORD_MAX 0xffffffffUL
#define DWORDLONG_MAX 0xFFFFFFFFFFFFFFFF #define DWORDLONG_MAX 0xffffffffffffffffui64
#define CONFIGMG_VERSION 0x0400 #define CONFIGMG_VERSION 0x0400
//-------------------------------------------------------------- //--------------------------------------------------------------
// Data types // Data types
//-------------------------------------------------------------- //--------------------------------------------------------------
//
// Work around weirdness with Win32 typedef...
//
#ifdef NT_INCLUDED #ifdef NT_INCLUDED
//
// __int64 is only supported by 2.0 and later midl.
// __midl is set by the 2.0 midl and not by 1.0 midl.
//
#if (!defined(MIDL_PASS) || defined(__midl)) && (!defined(_M_IX86) || (defined(_
INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64))
typedef unsigned __int64 DWORDLONG; typedef unsigned __int64 DWORDLONG;
#else
typedef double DWORDLONG;
#endif
typedef DWORDLONG *PDWORDLONG; typedef DWORDLONG *PDWORDLONG;
#endif /* NT_INCLUDED */ #endif /* NT_INCLUDED */
// //
// Standardized Return Value data type // Standardized Return Value data type
// //
typedef DWORD RETURN_TYPE; typedef DWORD RETURN_TYPE;
typedef RETURN_TYPE CONFIGRET; typedef RETURN_TYPE CONFIGRET;
skipping to change at line 104 skipping to change at line 93
// Device Instance Handle data type // Device Instance Handle data type
// //
typedef DWORD DEVNODE, DEVINST; typedef DWORD DEVNODE, DEVINST;
typedef DEVNODE *PDEVNODE, *PDEVINST; typedef DEVNODE *PDEVNODE, *PDEVINST;
// //
// Device Instance Identifier data type // Device Instance Identifier data type
// The device instance ID specifies the registry path, relative to the // The device instance ID specifies the registry path, relative to the
// Enum key , for a device instance. For example: \Root\*PNP0500\0000. // Enum key , for a device instance. For example: \Root\*PNP0500\0000.
// //
typedef CHAR *DEVNODEID_A, *DEVINSTID_A; // Device ID ANSI name. typedef __nullterminated CHAR *DEVNODEID_A, *DEVINSTID_A; // Device ID ANSI nam
typedef WCHAR *DEVNODEID_W, *DEVINSTID_W; // Device ID Unicode name. e.
typedef __nullterminated WCHAR *DEVNODEID_W, *DEVINSTID_W; // Device ID Unicode
name.
#ifdef UNICODE #ifdef UNICODE
typedef DEVNODEID_W DEVNODEID; typedef DEVNODEID_W DEVNODEID;
typedef DEVINSTID_W DEVINSTID; typedef DEVINSTID_W DEVINSTID;
#else #else
typedef DEVNODEID_A DEVNODEID; typedef DEVNODEID_A DEVNODEID;
typedef DEVINSTID_A DEVINSTID; typedef DEVINSTID_A DEVINSTID;
#endif #endif
// //
// Logical Configuration Handle data type // Logical Configuration Handle data type
// //
typedef DWORD_PTR LOG_CONF; typedef DWORD_PTR LOG_CONF;
typedef LOG_CONF *PLOG_CONF; typedef LOG_CONF *PLOG_CONF;
// //
// Resource Descriptor Handle data type // Resource Descriptor Handle data type
// //
typedef DWORD_PTR RES_DES; typedef DWORD_PTR RES_DES;
typedef RES_DES *PRES_DES; typedef RES_DES *PRES_DES;
// //
// Resource ID data type (may take any of the ResType_* values) // Resource ID data type (may take any of the ResType_* values)
// //
typedef ULONG RESOURCEID; typedef ULONG RESOURCEID;
typedef RESOURCEID *PRESOURCEID; typedef RESOURCEID *PRESOURCEID;
// //
// Priority data type (may take any of the LCPRI_* values) // Priority data type (may take any of the LCPRI_* values)
// //
typedef ULONG PRIORITY; typedef ULONG PRIORITY;
typedef PRIORITY *PPRIORITY; typedef PRIORITY *PPRIORITY;
// //
// Range List Handle data type // Range List Handle data type
// //
typedef DWORD_PTR RANGE_LIST; typedef DWORD_PTR RANGE_LIST;
typedef RANGE_LIST *PRANGE_LIST; typedef RANGE_LIST *PRANGE_LIST;
// //
// Range Element Handle data type // Range Element Handle data type
// //
typedef DWORD_PTR RANGE_ELEMENT; typedef DWORD_PTR RANGE_ELEMENT;
typedef RANGE_ELEMENT *PRANGE_ELEMENT; typedef RANGE_ELEMENT *PRANGE_ELEMENT;
// //
// Machine Handle data type // Machine Handle data type
// //
typedef HANDLE HMACHINE; typedef HANDLE HMACHINE;
typedef HMACHINE *PHMACHINE; typedef HMACHINE *PHMACHINE;
// //
// Conflict List data types // Conflict List data types
// //
typedef ULONG_PTR CONFLICT_LIST; typedef ULONG_PTR CONFLICT_LIST;
typedef CONFLICT_LIST *PCONFLICT_LIST; typedef CONFLICT_LIST *PCONFLICT_LIST;
typedef struct _CONFLICT_DETAILS_A { typedef struct _CONFLICT_DETAILS_A {
ULONG CD_ulSize; // size of structure, ie: sizeof(CO NFLICT_DETAILS) ULONG CD_ulSize; // size of structure, ie: sizeof(CO NFLICT_DETAILS)
ULONG CD_ulMask; // indicates what information is re quired/valid ULONG CD_ulMask; // indicates what information is re quired/valid
DEVINST CD_dnDevInst; // filled with DevInst of conflicti ng device if CM_CDMASK_DEVINST set DEVINST CD_dnDevInst; // filled with DevInst of conflicti ng device if CM_CDMASK_DEVINST set
RES_DES CD_rdResDes; // filled with a ResDes of conflict if CM_CDMASK_RESDES set RES_DES CD_rdResDes; // filled with a ResDes of conflict if CM_CDMASK_RESDES set
ULONG CD_ulFlags; // various flags regarding conflict ULONG CD_ulFlags; // various flags regarding conflict
CHAR CD_szDescription[MAX_PATH]; // description of conflicting devic e CHAR CD_szDescription[MAX_PATH]; // description of conflicting devic e
} CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A; } CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A;
skipping to change at line 244 skipping to change at line 233
#define mMD_CombinedWrite (0x10) // Bitmask,supports write-behind #define mMD_CombinedWrite (0x10) // Bitmask,supports write-behind
#define fMD_CombinedWrite mMD_CombinedWrite // compatibility #define fMD_CombinedWrite mMD_CombinedWrite // compatibility
#define fMD_CombinedWriteDisallowed (0x0) // no combined-write caching #define fMD_CombinedWriteDisallowed (0x0) // no combined-write caching
#define fMD_CombinedWriteAllowed (0x10) // supports combined-write caching #define fMD_CombinedWriteAllowed (0x10) // supports combined-write caching
#define mMD_Cacheable (0x20) // Bitmask,whether memory is cacheabl e #define mMD_Cacheable (0x20) // Bitmask,whether memory is cacheabl e
#define fMD_NonCacheable (0x0) // Memory range is non-cacheable #define fMD_NonCacheable (0x0) // Memory range is non-cacheable
#define fMD_Cacheable (0x20) // Memory range is cacheable #define fMD_Cacheable (0x20) // Memory range is cacheable
#define fMD_WINDOW_DECODE (0x40) // Memory range is bridge window deco
de.
#define fMD_MEMORY_BAR (0x80) // Memory BAR resource.
// //
// MEM_RANGE Structure // MEM_RANGE Structure
// //
typedef struct Mem_Range_s { typedef struct Mem_Range_s {
DWORDLONG MR_Align; // specifies mask for base alignment DWORDLONG MR_Align; // specifies mask for base alignment
ULONG MR_nBytes; // specifies number of bytes required ULONG MR_nBytes; // specifies number of bytes required
DWORDLONG MR_Min; // specifies minimum address of the range DWORDLONG MR_Min; // specifies minimum address of the range
DWORDLONG MR_Max; // specifies maximum address of the range DWORDLONG MR_Max; // specifies maximum address of the range
DWORD MR_Flags; // specifies flags describing range (fMD flags) DWORD MR_Flags; // specifies flags describing range (fMD flags)
DWORD MR_Reserved; DWORD MR_Reserved;
skipping to change at line 300 skipping to change at line 292
#define fIOD_PortType (0x1) // Bitmask,whether port is IO or memory #define fIOD_PortType (0x1) // Bitmask,whether port is IO or memory
#define fIOD_Memory (0x0) // Port resource really uses memory #define fIOD_Memory (0x0) // Port resource really uses memory
#define fIOD_IO (0x1) // Port resource uses IO ports #define fIOD_IO (0x1) // Port resource uses IO ports
#define fIOD_DECODE (0x00fc) // decode flags #define fIOD_DECODE (0x00fc) // decode flags
#define fIOD_10_BIT_DECODE (0x0004) #define fIOD_10_BIT_DECODE (0x0004)
#define fIOD_12_BIT_DECODE (0x0008) #define fIOD_12_BIT_DECODE (0x0008)
#define fIOD_16_BIT_DECODE (0x0010) #define fIOD_16_BIT_DECODE (0x0010)
#define fIOD_POSITIVE_DECODE (0x0020) #define fIOD_POSITIVE_DECODE (0x0020)
#define fIOD_PASSIVE_DECODE (0x0040) #define fIOD_PASSIVE_DECODE (0x0040)
#define fIOD_WINDOW_DECODE (0x0080) #define fIOD_WINDOW_DECODE (0x0080)
#define fIOD_PORT_BAR (0x0100)
// //
// these are for compatiblity // these are for compatiblity
// //
#define IO_ALIAS_10_BIT_DECODE (0x00000004) #define IO_ALIAS_10_BIT_DECODE (0x00000004)
#define IO_ALIAS_12_BIT_DECODE (0x00000010) #define IO_ALIAS_12_BIT_DECODE (0x00000010)
#define IO_ALIAS_16_BIT_DECODE (0x00000000) #define IO_ALIAS_16_BIT_DECODE (0x00000000)
#define IO_ALIAS_POSITIVE_DECODE (0x000000FF) #define IO_ALIAS_POSITIVE_DECODE (0x000000FF)
// //
skipping to change at line 491 skipping to change at line 484
#else #else
typedef IRQ_RESOURCE_32 IRQ_RESOURCE; typedef IRQ_RESOURCE_32 IRQ_RESOURCE;
typedef PIRQ_RESOURCE_32 PIRQ_RESOURCE; typedef PIRQ_RESOURCE_32 PIRQ_RESOURCE;
#endif #endif
// //
// Define the size of each range structure // Define the size of each range structure
// //
#define IRQType_Range sizeof(struct IRQ_Range_s) #define IRQType_Range sizeof(struct IRQ_Range_s)
#if (WINVER >= _WIN32_WINNT_WINXP)
// //
// Flags for resource descriptor APIs indicating the width of certain // Flags for resource descriptor APIs indicating the width of certain
// variable-size resource descriptor structure fields, where applicable. // variable-size resource descriptor structure fields, where applicable.
// //
#define CM_RESDES_WIDTH_DEFAULT (0x00000000) // 32 or 64-bit IRQ_RESOURCE / IRQ _DES, based on client #define CM_RESDES_WIDTH_DEFAULT (0x00000000) // 32 or 64-bit IRQ_RESOURCE / IRQ _DES, based on client
#define CM_RESDES_WIDTH_32 (0x00000001) // 32-bit IRQ_RESOURCE / IRQ_DES #define CM_RESDES_WIDTH_32 (0x00000001) // 32-bit IRQ_RESOURCE / IRQ_DES
#define CM_RESDES_WIDTH_64 (0x00000002) // 64-bit IRQ_RESOURCE / IRQ_DES #define CM_RESDES_WIDTH_64 (0x00000002) // 64-bit IRQ_RESOURCE / IRQ_DES
#define CM_RESDES_WIDTH_BITS (0x00000003) #define CM_RESDES_WIDTH_BITS (0x00000003)
#endif // (WINVER >= _WIN32_WINNT_WINXP)
//-------------------------------------------------------------- //--------------------------------------------------------------
// Device Private Resource // Device Private Resource
//-------------------------------------------------------------- //--------------------------------------------------------------
// //
// DEVICEPRIVATE_RANGE structure // DEVICEPRIVATE_RANGE structure
// //
typedef struct DevPrivate_Range_s { typedef struct DevPrivate_Range_s {
skipping to change at line 582 skipping to change at line 577
#define fPCD_MEM1_A (0x4) // MEM1 is Attribute #define fPCD_MEM1_A (0x4) // MEM1 is Attribute
#define fPCD_MEM2_A (0x8) // MEM2 is Attribute #define fPCD_MEM2_A (0x8) // MEM2 is Attribute
#define fPCD_IO_ZW_8 (0x10) // zero wait on 8 bit I/O #define fPCD_IO_ZW_8 (0x10) // zero wait on 8 bit I/O
#define fPCD_IO_SRC_16 (0x20) // iosrc 16 #define fPCD_IO_SRC_16 (0x20) // iosrc 16
#define fPCD_IO_WS_16 (0x40) // wait states on 16 bit io #define fPCD_IO_WS_16 (0x40) // wait states on 16 bit io
#define mPCD_MEM_WS (0x300) // Bitmask, for additional wait states on me mory windows #define mPCD_MEM_WS (0x300) // Bitmask, for additional wait states on me mory windows
#define fPCD_MEM_WS_ONE (0x100) // 1 wait state #define fPCD_MEM_WS_ONE (0x100) // 1 wait state
#define fPCD_MEM_WS_TWO (0x200) // 2 wait states #define fPCD_MEM_WS_TWO (0x200) // 2 wait states
#define fPCD_MEM_WS_THREE (0x300) // 3 wait states #define fPCD_MEM_WS_THREE (0x300) // 3 wait states
#if (WINVER >= _WIN32_WINNT_WINXP)
#define fPCD_MEM_A (0x4) // MEM is Attribute #define fPCD_MEM_A (0x4) // MEM is Attribute
#define fPCD_ATTRIBUTES_PER_WINDOW (0x8000) #define fPCD_ATTRIBUTES_PER_WINDOW (0x8000)
#define fPCD_IO1_16 (0x00010000) // I/O window 1 is 16-bit #define fPCD_IO1_16 (0x00010000) // I/O window 1 is 16-bit
#define fPCD_IO1_ZW_8 (0x00020000) // I/O window 1 zero wait on 8 bit I/O #define fPCD_IO1_ZW_8 (0x00020000) // I/O window 1 zero wait on 8 bit I/O
#define fPCD_IO1_SRC_16 (0x00040000) // I/O window 1 iosrc 16 #define fPCD_IO1_SRC_16 (0x00040000) // I/O window 1 iosrc 16
#define fPCD_IO1_WS_16 (0x00080000) // I/O window 1 wait states on 16 bit io #define fPCD_IO1_WS_16 (0x00080000) // I/O window 1 wait states on 16 bit io
#define fPCD_IO2_16 (0x00100000) // I/O window 2 is 16-bit #define fPCD_IO2_16 (0x00100000) // I/O window 2 is 16-bit
skipping to change at line 610 skipping to change at line 606
#define fPCD_MEM1_16 (0x04000000) // MEM window 1 is 16-bit #define fPCD_MEM1_16 (0x04000000) // MEM window 1 is 16-bit
#define mPCD_MEM2_WS (0x30000000) // MEM window 2 Bitmask, for additiona l wait states on memory windows #define mPCD_MEM2_WS (0x30000000) // MEM window 2 Bitmask, for additiona l wait states on memory windows
#define fPCD_MEM2_WS_ONE (0x10000000) // MEM window 2, 1 wait state #define fPCD_MEM2_WS_ONE (0x10000000) // MEM window 2, 1 wait state
#define fPCD_MEM2_WS_TWO (0x20000000) // MEM window 2, 2 wait states #define fPCD_MEM2_WS_TWO (0x20000000) // MEM window 2, 2 wait states
#define fPCD_MEM2_WS_THREE (0x30000000) // MEM window 2, 3 wait states #define fPCD_MEM2_WS_THREE (0x30000000) // MEM window 2, 3 wait states
#define fPCD_MEM2_16 (0x40000000) // MEM window 2 is 16-bit #define fPCD_MEM2_16 (0x40000000) // MEM window 2 is 16-bit
#define PCD_MAX_MEMORY 2 #define PCD_MAX_MEMORY 2
#define PCD_MAX_IO 2 #define PCD_MAX_IO 2
#endif // (WINVER >= _WIN32_WINNT_WINXP)
typedef struct PcCard_Des_s { typedef struct PcCard_Des_s {
DWORD PCD_Count; DWORD PCD_Count;
DWORD PCD_Type; DWORD PCD_Type;
DWORD PCD_Flags; DWORD PCD_Flags;
BYTE PCD_ConfigIndex; BYTE PCD_ConfigIndex;
BYTE PCD_Reserved[3]; BYTE PCD_Reserved[3];
DWORD PCD_MemoryCardBase1; DWORD PCD_MemoryCardBase1;
DWORD PCD_MemoryCardBase2; DWORD PCD_MemoryCardBase2;
#if (WINVER >= _WIN32_WINNT_WINXP)
DWORD PCD_MemoryCardBase[PCD_MAX_MEMORY]; // will soon be remo ved DWORD PCD_MemoryCardBase[PCD_MAX_MEMORY]; // will soon be remo ved
WORD PCD_MemoryFlags[PCD_MAX_MEMORY]; // will soon be remo ved WORD PCD_MemoryFlags[PCD_MAX_MEMORY]; // will soon be remo ved
BYTE PCD_IoFlags[PCD_MAX_IO]; // will soon be remo ved BYTE PCD_IoFlags[PCD_MAX_IO]; // will soon be remo ved
#endif // (WINVER >= _WIN32_WINNT_WINXP)
} PCCARD_DES, *PPCCARD_DES; } PCCARD_DES, *PPCCARD_DES;
typedef struct PcCard_Resource_s { typedef struct PcCard_Resource_s {
PCCARD_DES PcCard_Header; PCCARD_DES PcCard_Header;
} PCCARD_RESOURCE, *PPCCARD_RESOURCE; } PCCARD_RESOURCE, *PPCCARD_RESOURCE;
//-------------------------------------------------------------- //--------------------------------------------------------------
// MF (multifunction) PCCard Configuration Resource // MF (multifunction) PCCard Configuration Resource
//-------------------------------------------------------------- //--------------------------------------------------------------
skipping to change at line 750 skipping to change at line 751
// //
#define ResType_All (0x00000000) // Return all resource types #define ResType_All (0x00000000) // Return all resource types
#define ResType_None (0x00000000) // Arbitration always succeeded #define ResType_None (0x00000000) // Arbitration always succeeded
#define ResType_Mem (0x00000001) // Physical address resource #define ResType_Mem (0x00000001) // Physical address resource
#define ResType_IO (0x00000002) // Physical I/O address resource #define ResType_IO (0x00000002) // Physical I/O address resource
#define ResType_DMA (0x00000003) // DMA channels resource #define ResType_DMA (0x00000003) // DMA channels resource
#define ResType_IRQ (0x00000004) // IRQ resource #define ResType_IRQ (0x00000004) // IRQ resource
#define ResType_DoNotUse (0x00000005) // Used as spacer to sync subsequen t ResTypes w/NT #define ResType_DoNotUse (0x00000005) // Used as spacer to sync subsequen t ResTypes w/NT
#define ResType_BusNumber (0x00000006) // bus number resource #define ResType_BusNumber (0x00000006) // bus number resource
#define ResType_MAX (0x00000006) // Maximum known (arbitrated) ResTy pe #define ResType_MAX (0x00000006) // Maximum known (arbitrated) ResTy pe
//
// This resource type is currently only supported in Kernel Mode as
// CmResourceTypeMemoryLarge. It is shown here as ResType_MemLarge
// for completeness and will eventually be fully implemented in user mode
//
#define ResType_MemLarge (0x00000007) // Memory resources >= 4GB
#define ResType_Ignored_Bit (0x00008000) // Ignore this resource #define ResType_Ignored_Bit (0x00008000) // Ignore this resource
#define ResType_ClassSpecific (0x0000FFFF) // class-specific resource #define ResType_ClassSpecific (0x0000FFFF) // class-specific resource
#define ResType_Reserved (0x00008000) // reserved for internal use #define ResType_Reserved (0x00008000) // reserved for internal use
#define ResType_DevicePrivate (0x00008001) // device private data #define ResType_DevicePrivate (0x00008001) // device private data
#define ResType_PcCardConfig (0x00008002) // PC Card configuration data #define ResType_PcCardConfig (0x00008002) // PC Card configuration data
#define ResType_MfCardConfig (0x00008003) // MF Card configuration data #define ResType_MfCardConfig (0x00008003) // MF Card configuration data
// //
// Flags specifying options for ranges that conflict with ranges already in // Flags specifying options for ranges that conflict with ranges already in
// the range list (CM_Add_Range) // the range list (CM_Add_Range)
skipping to change at line 822 skipping to change at line 831
#define CM_CREATE_DEVINST_PHANTOM CM_CREATE_DEVNODE_PHANTOM #define CM_CREATE_DEVINST_PHANTOM CM_CREATE_DEVNODE_PHANTOM
#define CM_CREATE_DEVINST_GENERATE_ID CM_CREATE_DEVNODE_GENERATE_ID #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_DO_NOT_INSTALL CM_CREATE_DEVNODE_DO_NOT_INSTALL
#define CM_CREATE_DEVINST_BITS CM_CREATE_DEVNODE_BITS #define CM_CREATE_DEVINST_BITS CM_CREATE_DEVNODE_BITS
// //
// Flags for CM_Delete_Class_Key // Flags for CM_Delete_Class_Key
// //
#define CM_DELETE_CLASS_ONLY (0x00000000) #define CM_DELETE_CLASS_ONLY (0x00000000)
#define CM_DELETE_CLASS_SUBKEYS (0x00000001) #define CM_DELETE_CLASS_SUBKEYS (0x00000001)
#define CM_DELETE_CLASS_BITS (0x00000001)
#if (WINVER >= _WIN32_WINNT_LONGHORN)
#define CM_DELETE_CLASS_INTERFACE (0x00000002)
#endif // (WINVER >= _WIN32_WINNT_LONGHORN)
#define CM_DELETE_CLASS_BITS (0x00000003)
// //
// Detection reason flags (specified in call to CM_Run_Detection) // Detection reason flags (specified in call to CM_Run_Detection)
// //
#define CM_DETECT_NEW_PROFILE (0x00000001) // detection for new hw profile #define CM_DETECT_NEW_PROFILE (0x00000001) // detection for new hw profile
#define CM_DETECT_CRASHED (0x00000002) // Previous detection crashed #define CM_DETECT_CRASHED (0x00000002) // Previous detection crashed
#define CM_DETECT_HWPROF_FIRST_BOOT (0x00000004) #define CM_DETECT_HWPROF_FIRST_BOOT (0x00000004)
#define CM_DETECT_RUN (0x80000000) #define CM_DETECT_RUN (0x80000000)
#define CM_DETECT_BITS (0x80000007) #define CM_DETECT_BITS (0x80000007)
skipping to change at line 884 skipping to change at line 898
#define CM_DRP_CLASSGUID (0x00000009) // ClassGUID REG_SZ prop erty (RW) #define CM_DRP_CLASSGUID (0x00000009) // ClassGUID REG_SZ prop erty (RW)
#define CM_DRP_DRIVER (0x0000000A) // Driver REG_SZ propert y (RW) #define CM_DRP_DRIVER (0x0000000A) // Driver REG_SZ propert y (RW)
#define CM_DRP_CONFIGFLAGS (0x0000000B) // ConfigFlags REG_DWORD property (RW) #define CM_DRP_CONFIGFLAGS (0x0000000B) // ConfigFlags REG_DWORD property (RW)
#define CM_DRP_MFG (0x0000000C) // Mfg REG_SZ property ( RW) #define CM_DRP_MFG (0x0000000C) // Mfg REG_SZ property ( RW)
#define CM_DRP_FRIENDLYNAME (0x0000000D) // FriendlyName REG_SZ p roperty (RW) #define CM_DRP_FRIENDLYNAME (0x0000000D) // FriendlyName REG_SZ p roperty (RW)
#define CM_DRP_LOCATION_INFORMATION (0x0000000E) // LocationInformation R EG_SZ property (RW) #define CM_DRP_LOCATION_INFORMATION (0x0000000E) // LocationInformation R EG_SZ property (RW)
#define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME (0x0000000F) // PhysicalDeviceObjectN ame REG_SZ property (R) #define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME (0x0000000F) // PhysicalDeviceObjectN ame REG_SZ property (R)
#define CM_DRP_CAPABILITIES (0x00000010) // Capabilities REG_DWOR D property (R) #define CM_DRP_CAPABILITIES (0x00000010) // Capabilities REG_DWOR D property (R)
#define CM_DRP_UI_NUMBER (0x00000011) // UiNumber REG_DWORD pr operty (R) #define CM_DRP_UI_NUMBER (0x00000011) // UiNumber REG_DWORD pr operty (R)
#define CM_DRP_UPPERFILTERS (0x00000012) // UpperFilters REG_MULT I_SZ property (RW) #define CM_DRP_UPPERFILTERS (0x00000012) // UpperFilters REG_MULT I_SZ property (RW)
#if (WINVER >= _WIN32_WINNT_LONGHORN)
#define CM_CRP_UPPERFILTERS CM_DRP_UPPERFILTERS // UpperFilters R
EG_MULTI_SZ property (RW)
#endif // (WINVER >= _WIN32_WINNT_LONGHORN)
#define CM_DRP_LOWERFILTERS (0x00000013) // LowerFilters REG_MULT I_SZ property (RW) #define CM_DRP_LOWERFILTERS (0x00000013) // LowerFilters REG_MULT I_SZ property (RW)
#if (WINVER >= _WIN32_WINNT_LONGHORN)
#define CM_CRP_LOWERFILTERS CM_DRP_LOWERFILTERS // LowerFilters R
EG_MULTI_SZ property (RW)
#endif // (WINVER >= _WIN32_WINNT_LONGHORN)
#define CM_DRP_BUSTYPEGUID (0x00000014) // Bus Type Guid, GUID, (R) #define CM_DRP_BUSTYPEGUID (0x00000014) // Bus Type Guid, GUID, (R)
#define CM_DRP_LEGACYBUSTYPE (0x00000015) // Legacy bus type, INTE RFACE_TYPE, (R) #define CM_DRP_LEGACYBUSTYPE (0x00000015) // Legacy bus type, INTE RFACE_TYPE, (R)
#define CM_DRP_BUSNUMBER (0x00000016) // Bus Number, DWORD, (R ) #define CM_DRP_BUSNUMBER (0x00000016) // Bus Number, DWORD, (R )
#define CM_DRP_ENUMERATOR_NAME (0x00000017) // Enumerator Name REG_S Z property (R) #define CM_DRP_ENUMERATOR_NAME (0x00000017) // Enumerator Name REG_S Z property (R)
#define CM_DRP_SECURITY (0x00000018) // Security - Device ove rride (RW) #define CM_DRP_SECURITY (0x00000018) // Security - Device ove rride (RW)
#define CM_CRP_SECURITY CM_DRP_SECURITY // Class default se curity (RW) #define CM_CRP_SECURITY CM_DRP_SECURITY // Class default se curity (RW)
#define CM_DRP_SECURITY_SDS (0x00000019) // Security - Device ove rride (RW) #define CM_DRP_SECURITY_SDS (0x00000019) // Security - Device ove rride (RW)
#define CM_CRP_SECURITY_SDS CM_DRP_SECURITY_SDS // Class default security (RW) #define CM_CRP_SECURITY_SDS CM_DRP_SECURITY_SDS // Class default security (RW)
#define CM_DRP_DEVTYPE (0x0000001A) // Device Type - Device override (RW) #define CM_DRP_DEVTYPE (0x0000001A) // Device Type - Device override (RW)
#define CM_CRP_DEVTYPE CM_DRP_DEVTYPE // Class default De vice-type (RW) #define CM_CRP_DEVTYPE CM_DRP_DEVTYPE // Class default De vice-type (RW)
#define CM_DRP_EXCLUSIVE (0x0000001B) // Exclusivity - Device override (RW) #define CM_DRP_EXCLUSIVE (0x0000001B) // Exclusivity - Device override (RW)
#define CM_CRP_EXCLUSIVE CM_DRP_EXCLUSIVE // Class default (R W) #define CM_CRP_EXCLUSIVE CM_DRP_EXCLUSIVE // Class default (R W)
#define CM_DRP_CHARACTERISTICS (0x0000001C) // Characteristics - Dev ice Override (RW) #define CM_DRP_CHARACTERISTICS (0x0000001C) // Characteristics - Dev ice Override (RW)
#define CM_CRP_CHARACTERISTICS CM_DRP_CHARACTERISTICS // Class defa ult (RW) #define CM_CRP_CHARACTERISTICS CM_DRP_CHARACTERISTICS // Class defa ult (RW)
#define CM_DRP_ADDRESS (0x0000001D) // Device Address (R) #define CM_DRP_ADDRESS (0x0000001D) // Device Address (R)
#define CM_DRP_UI_NUMBER_DESC_FORMAT (0x0000001E) // UINumberDescFormat RE G_SZ property (RW) #define CM_DRP_UI_NUMBER_DESC_FORMAT (0x0000001E) // UINumberDescFormat RE G_SZ property (RW)
#if (WINVER >= _WIN32_WINNT_WINXP)
#define CM_DRP_DEVICE_POWER_DATA (0x0000001F) // CM_POWER_DATA REG_BIN ARY property (R) #define CM_DRP_DEVICE_POWER_DATA (0x0000001F) // CM_POWER_DATA REG_BIN ARY property (R)
#define CM_DRP_REMOVAL_POLICY (0x00000020) // CM_DEVICE_REMOVAL_POL ICY REG_DWORD (R) #define CM_DRP_REMOVAL_POLICY (0x00000020) // CM_DEVICE_REMOVAL_POL ICY REG_DWORD (R)
#define CM_DRP_REMOVAL_POLICY_HW_DEFAULT (0x00000021) // CM_DRP_REMOVAL_POLICY _HW_DEFAULT REG_DWORD (R) #define CM_DRP_REMOVAL_POLICY_HW_DEFAULT (0x00000021) // CM_DRP_REMOVAL_POLICY _HW_DEFAULT REG_DWORD (R)
#define CM_DRP_REMOVAL_POLICY_OVERRIDE (0x00000022) // CM_DRP_REMOVAL_POLICY _OVERRIDE REG_DWORD (RW) #define CM_DRP_REMOVAL_POLICY_OVERRIDE (0x00000022) // CM_DRP_REMOVAL_POLICY _OVERRIDE REG_DWORD (RW)
#define CM_DRP_INSTALL_STATE (0x00000023) // CM_DRP_INSTALL_STATE REG_DWORD (R) #define CM_DRP_INSTALL_STATE (0x00000023) // CM_DRP_INSTALL_STATE REG_DWORD (R)
#endif // (WINVER >= _WIN32_WINNT_WINXP)
#if (WINVER >= _WIN32_WINNT_WS03)
#define CM_DRP_LOCATION_PATHS (0x00000024) // CM_DRP_LOCATION_PATHS
REG_MULTI_SZ (R)
#endif // (WINVER >= _WIN32_WINNT_WS03)
#define CM_DRP_MIN (0x00000001) // First device register #define CM_DRP_MIN (0x00000001) // First device register
#define CM_CRP_MIN CM_DRP_MIN // First class register #define CM_CRP_MIN CM_DRP_MIN // First class register
#define CM_DRP_MAX (0x00000023) // Last device register #define CM_DRP_MAX (0x00000024) // Last device register
#define CM_CRP_MAX CM_DRP_MAX // Last class register #define CM_CRP_MAX CM_DRP_MAX // Last class register
// //
// Capabilities bits (the capability value is returned from calling // Capabilities bits (the capability value is returned from calling
// CM_Get_DevInst_Registry_Property with CM_DRP_CAPABILITIES property) // CM_Get_DevInst_Registry_Property with CM_DRP_CAPABILITIES property)
// //
#define CM_DEVCAP_LOCKSUPPORTED (0x00000001) #define CM_DEVCAP_LOCKSUPPORTED (0x00000001)
#define CM_DEVCAP_EJECTSUPPORTED (0x00000002) #define CM_DEVCAP_EJECTSUPPORTED (0x00000002)
#define CM_DEVCAP_REMOVABLE (0x00000004) #define CM_DEVCAP_REMOVABLE (0x00000004)
#define CM_DEVCAP_DOCKDEVICE (0x00000008) #define CM_DEVCAP_DOCKDEVICE (0x00000008)
#define CM_DEVCAP_UNIQUEID (0x00000010) #define CM_DEVCAP_UNIQUEID (0x00000010)
#define CM_DEVCAP_SILENTINSTALL (0x00000020) #define CM_DEVCAP_SILENTINSTALL (0x00000020)
#define CM_DEVCAP_RAWDEVICEOK (0x00000040) #define CM_DEVCAP_RAWDEVICEOK (0x00000040)
#define CM_DEVCAP_SURPRISEREMOVALOK (0x00000080) #define CM_DEVCAP_SURPRISEREMOVALOK (0x00000080)
#define CM_DEVCAP_HARDWAREDISABLED (0x00000100) #define CM_DEVCAP_HARDWAREDISABLED (0x00000100)
#define CM_DEVCAP_NONDYNAMIC (0x00000200) #define CM_DEVCAP_NONDYNAMIC (0x00000200)
#if (WINVER >= _WIN32_WINNT_WINXP)
// //
// Removal policies (retrievable via CM_Get_DevInst_Registry_Property with // Removal policies (retrievable via CM_Get_DevInst_Registry_Property with
// the CM_DRP_REMOVAL_POLICY, CM_DRP_REMOVAL_POLICY_OVERRIDE, or // the CM_DRP_REMOVAL_POLICY, CM_DRP_REMOVAL_POLICY_OVERRIDE, or
// CM_DRP_REMOVAL_POLICY_HW_DEFAULT properties) // CM_DRP_REMOVAL_POLICY_HW_DEFAULT properties)
// //
#define CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL 1 #define CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL 1
#define CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL 2 #define CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL 2
#define CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL 3 #define CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL 3
// //
// Device install states (retrievable via CM_Get_DevInst_Registry_Property with // Device install states (retrievable via CM_Get_DevInst_Registry_Property with
// the CM_DRP_INSTALL_STATE properties) // the CM_DRP_INSTALL_STATE properties)
// //
#define CM_INSTALL_STATE_INSTALLED 0 #define CM_INSTALL_STATE_INSTALLED 0
#define CM_INSTALL_STATE_NEEDS_REINSTALL 1 #define CM_INSTALL_STATE_NEEDS_REINSTALL 1
#define CM_INSTALL_STATE_FAILED_INSTALL 2 #define CM_INSTALL_STATE_FAILED_INSTALL 2
#define CM_INSTALL_STATE_FINISH_INSTALL 3 #define CM_INSTALL_STATE_FINISH_INSTALL 3
#endif // (WINVER >= _WIN32_WINNT_WINXP)
// //
// Flags for CM_Locate_DevNode // Flags for CM_Locate_DevNode
// //
#define CM_LOCATE_DEVNODE_NORMAL 0x00000000 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
#define CM_LOCATE_DEVNODE_PHANTOM 0x00000001 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
#define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
#define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
#define CM_LOCATE_DEVNODE_BITS 0x00000007 #define CM_LOCATE_DEVNODE_BITS 0x00000007
skipping to change at line 988 skipping to change at line 1021
// //
#define CM_QUERY_REMOVE_UI_OK (CM_REMOVE_UI_OK) #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_UI_NOT_OK (CM_REMOVE_UI_NOT_OK)
#define CM_QUERY_REMOVE_BITS (CM_QUERY_REMOVE_UI_OK|CM_QUERY_REMOVE_UI_NO T_OK) #define CM_QUERY_REMOVE_BITS (CM_QUERY_REMOVE_UI_OK|CM_QUERY_REMOVE_UI_NO T_OK)
// //
// Flags for CM_Reenumerate_DevNode // Flags for CM_Reenumerate_DevNode
// //
#define CM_REENUMERATE_NORMAL 0x00000000 #define CM_REENUMERATE_NORMAL 0x00000000
#define CM_REENUMERATE_SYNCHRONOUS 0x00000001 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
#if (WINVER >= _WIN32_WINNT_WINXP)
#define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
#define CM_REENUMERATE_ASYNCHRONOUS 0x00000004 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
#endif // (WINVER >= _WIN32_WINNT_WINXP)
#define CM_REENUMERATE_BITS 0x00000007 #define CM_REENUMERATE_BITS 0x00000007
// //
// Flags for CM_Register_Device_Driver // Flags for CM_Register_Device_Driver
// //
#define CM_REGISTER_DEVICE_DRIVER_STATIC (0x00000000) #define CM_REGISTER_DEVICE_DRIVER_STATIC (0x00000000)
#define CM_REGISTER_DEVICE_DRIVER_DISABLEABLE (0x00000001) #define CM_REGISTER_DEVICE_DRIVER_DISABLEABLE (0x00000001)
#define CM_REGISTER_DEVICE_DRIVER_REMOVABLE (0x00000002) #define CM_REGISTER_DEVICE_DRIVER_REMOVABLE (0x00000002)
#define CM_REGISTER_DEVICE_DRIVER_BITS (0x00000003) #define CM_REGISTER_DEVICE_DRIVER_BITS (0x00000003)
skipping to change at line 1034 skipping to change at line 1071
#define CM_SET_HW_PROF_FLAGS_BITS (0x00000001) #define CM_SET_HW_PROF_FLAGS_BITS (0x00000001)
// //
// Re-enable and configuration actions (specified in call to CM_Setup_DevInst) // Re-enable and configuration actions (specified in call to CM_Setup_DevInst)
// //
#define CM_SETUP_DEVNODE_READY (0x00000000) // Reenable problem devinst #define CM_SETUP_DEVNODE_READY (0x00000000) // Reenable problem devinst
#define CM_SETUP_DEVINST_READY CM_SETUP_DEVNODE_READY #define CM_SETUP_DEVINST_READY CM_SETUP_DEVNODE_READY
#define CM_SETUP_DOWNLOAD (0x00000001) // Get info about devinst #define CM_SETUP_DOWNLOAD (0x00000001) // Get info about devinst
#define CM_SETUP_WRITE_LOG_CONFS (0x00000002) #define CM_SETUP_WRITE_LOG_CONFS (0x00000002)
#define CM_SETUP_PROP_CHANGE (0x00000003) #define CM_SETUP_PROP_CHANGE (0x00000003)
#if (WINVER >= _WIN32_WINNT_WINXP)
#define CM_SETUP_DEVNODE_RESET (0x00000004) // Reset problem devinst without s tarting #define CM_SETUP_DEVNODE_RESET (0x00000004) // Reset problem devinst without s tarting
#define CM_SETUP_DEVINST_RESET CM_SETUP_DEVNODE_RESET #define CM_SETUP_DEVINST_RESET CM_SETUP_DEVNODE_RESET
#endif // (WINVER >= _WIN32_WINNT_WINXP)
#define CM_SETUP_BITS (0x00000007) #define CM_SETUP_BITS (0x00000007)
// //
// Flags for CM_Query_Arbitrator_Free_Data and // Flags for CM_Query_Arbitrator_Free_Data and
// CM_Query_Arbitrator_Free_Data_Size. // CM_Query_Arbitrator_Free_Data_Size.
// //
#define CM_QUERY_ARBITRATOR_RAW (0x00000000) #define CM_QUERY_ARBITRATOR_RAW (0x00000000)
#define CM_QUERY_ARBITRATOR_TRANSLATED (0x00000001) #define CM_QUERY_ARBITRATOR_TRANSLATED (0x00000001)
#define CM_QUERY_ARBITRATOR_BITS (0x00000001) #define CM_QUERY_ARBITRATOR_BITS (0x00000001)
#if (WINVER >= _WIN32_WINNT_WINXP)
// //
// Flags for CM_Get_DevNode_Custom_Property // Flags for CM_Get_DevNode_Custom_Property
// //
#define CM_CUSTOMDEVPROP_MERGE_MULTISZ (0x00000001) #define CM_CUSTOMDEVPROP_MERGE_MULTISZ (0x00000001)
#define CM_CUSTOMDEVPROP_BITS (0x00000001) #define CM_CUSTOMDEVPROP_BITS (0x00000001)
#endif // (WINVER >= _WIN32_WINNT_WINXP)
//-------------------------------------------------------------- //--------------------------------------------------------------
// Function prototypes // Function prototypes
//-------------------------------------------------------------- //--------------------------------------------------------------
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Add_Empty_Log_Conf( CM_Add_Empty_Log_Conf(
OUT PLOG_CONF plcLogConf, __out PLOG_CONF plcLogConf,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PRIORITY Priority, __in PRIORITY Priority,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Add_Empty_Log_Conf_Ex( CM_Add_Empty_Log_Conf_Ex(
OUT PLOG_CONF plcLogConf, __out PLOG_CONF plcLogConf,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PRIORITY Priority, __in PRIORITY Priority,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Add_IDA( CM_Add_IDA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PSTR pszID, __in PSTR pszID,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Add_IDW( CM_Add_IDW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PWSTR pszID, __in PWSTR pszID,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Add_ID_ExA( CM_Add_ID_ExA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PSTR pszID, __in PSTR pszID,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Add_ID_ExW( CM_Add_ID_ExW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PWSTR pszID, __in PWSTR pszID,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Add_ID CM_Add_IDW #define CM_Add_ID CM_Add_IDW
#define CM_Add_ID_Ex CM_Add_ID_ExW #define CM_Add_ID_Ex CM_Add_ID_ExW
#else #else
#define CM_Add_ID CM_Add_IDA #define CM_Add_ID CM_Add_IDA
#define CM_Add_ID_Ex CM_Add_ID_ExA #define CM_Add_ID_Ex CM_Add_ID_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Add_Range( CM_Add_Range(
IN DWORDLONG ullStartValue, __in DWORDLONG ullStartValue,
IN DWORDLONG ullEndValue, __in DWORDLONG ullEndValue,
IN RANGE_LIST rlh, __in RANGE_LIST rlh,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Add_Res_Des( CM_Add_Res_Des(
OUT PRES_DES prdResDes, __out_opt PRES_DES prdResDes,
IN LOG_CONF lcLogConf, __in LOG_CONF lcLogConf,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN PCVOID ResourceData, __in_bcount(ResourceLen) PCVOID ResourceData,
IN ULONG ResourceLen, __in ULONG ResourceLen,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Add_Res_Des_Ex( CM_Add_Res_Des_Ex(
OUT PRES_DES prdResDes, __out_opt PRES_DES prdResDes,
IN LOG_CONF lcLogConf, __in LOG_CONF lcLogConf,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN PCVOID ResourceData, __in_bcount(ResourceLen) PCVOID ResourceData,
IN ULONG ResourceLen, __in ULONG ResourceLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Connect_MachineA( CM_Connect_MachineA(
IN PCSTR UNCServerName, __in_opt PCSTR UNCServerName,
OUT PHMACHINE phMachine __out PHMACHINE phMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Connect_MachineW( CM_Connect_MachineW(
IN PCWSTR UNCServerName, __in_opt PCWSTR UNCServerName,
OUT PHMACHINE phMachine __out PHMACHINE phMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Connect_Machine CM_Connect_MachineW #define CM_Connect_Machine CM_Connect_MachineW
#else #else
#define CM_Connect_Machine CM_Connect_MachineA #define CM_Connect_Machine CM_Connect_MachineA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Create_DevNodeA( CM_Create_DevNodeA(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINSTID_A pDeviceID, __in DEVINSTID_A pDeviceID,
IN DEVINST dnParent, __in DEVINST dnParent,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Create_DevNodeW( CM_Create_DevNodeW(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINSTID_W pDeviceID, __in DEVINSTID_W pDeviceID,
IN DEVINST dnParent, __in DEVINST dnParent,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Create_DevNode_ExA( CM_Create_DevNode_ExA(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINSTID_A pDeviceID, __in DEVINSTID_A pDeviceID,
IN DEVINST dnParent, __in DEVINST dnParent,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HANDLE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Create_DevNode_ExW( CM_Create_DevNode_ExW(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINSTID_W pDeviceID, __in DEVINSTID_W pDeviceID,
IN DEVINST dnParent, __in DEVINST dnParent,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HANDLE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Create_DevInstW CM_Create_DevNodeW #define CM_Create_DevInstW CM_Create_DevNodeW
#define CM_Create_DevInstA CM_Create_DevNodeA #define CM_Create_DevInstA CM_Create_DevNodeA
#define CM_Create_DevInst_ExW CM_Create_DevNode_ExW #define CM_Create_DevInst_ExW CM_Create_DevNode_ExW
#define CM_Create_DevInst_ExA CM_Create_DevNode_ExA #define CM_Create_DevInst_ExA CM_Create_DevNode_ExA
#ifdef UNICODE #ifdef UNICODE
#define CM_Create_DevNode CM_Create_DevNodeW #define CM_Create_DevNode CM_Create_DevNodeW
#define CM_Create_DevInst CM_Create_DevNodeW #define CM_Create_DevInst CM_Create_DevNodeW
#define CM_Create_DevNode_Ex CM_Create_DevNode_ExW #define CM_Create_DevNode_Ex CM_Create_DevNode_ExW
#define CM_Create_DevInst_Ex CM_Create_DevInst_ExW #define CM_Create_DevInst_Ex CM_Create_DevInst_ExW
#else #else
#define CM_Create_DevNode CM_Create_DevNodeA #define CM_Create_DevNode CM_Create_DevNodeA
#define CM_Create_DevInst CM_Create_DevNodeA #define CM_Create_DevInst CM_Create_DevNodeA
#define CM_Create_DevNode_Ex CM_Create_DevNode_ExA #define CM_Create_DevNode_Ex CM_Create_DevNode_ExA
#define CM_Create_DevInst_Ex CM_Create_DevNode_ExA #define CM_Create_DevInst_Ex CM_Create_DevNode_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Create_Range_List( CM_Create_Range_List(
OUT PRANGE_LIST prlh, __out PRANGE_LIST prlh,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Delete_Class_Key( CM_Delete_Class_Key(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Delete_Class_Key_Ex( CM_Delete_Class_Key_Ex(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HANDLE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Delete_DevNode_Key( CM_Delete_DevNode_Key(
IN DEVNODE dnDevNode, __in DEVNODE dnDevNode,
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Delete_DevNode_Key_Ex( CM_Delete_DevNode_Key_Ex(
IN DEVNODE dnDevNode, __in DEVNODE dnDevNode,
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HANDLE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Delete_DevInst_Key CM_Delete_DevNode_Key #define CM_Delete_DevInst_Key CM_Delete_DevNode_Key
#define CM_Delete_DevInst_Key_Ex CM_Delete_DevNode_Key_Ex #define CM_Delete_DevInst_Key_Ex CM_Delete_DevNode_Key_Ex
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Delete_Range( CM_Delete_Range(
IN DWORDLONG ullStartValue, __in DWORDLONG ullStartValue,
IN DWORDLONG ullEndValue, __in DWORDLONG ullEndValue,
IN RANGE_LIST rlh, __in RANGE_LIST rlh,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Detect_Resource_Conflict( CM_Detect_Resource_Conflict(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN PCVOID ResourceData, __in_bcount(ResourceLen) PCVOID ResourceData,
IN ULONG ResourceLen, __in ULONG ResourceLen,
OUT PBOOL pbConflictDetected, __out PBOOL pbConflictDetected,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Detect_Resource_Conflict_Ex( CM_Detect_Resource_Conflict_Ex(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN PCVOID ResourceData, __in_bcount(ResourceLen) PCVOID ResourceData,
IN ULONG ResourceLen, __in ULONG ResourceLen,
OUT PBOOL pbConflictDetected, __out PBOOL pbConflictDetected,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Disable_DevNode( CM_Disable_DevNode(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Disable_DevNode_Ex( CM_Disable_DevNode_Ex(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Disable_DevInst CM_Disable_DevNode #define CM_Disable_DevInst CM_Disable_DevNode
#define CM_Disable_DevInst_Ex CM_Disable_DevNode_Ex #define CM_Disable_DevInst_Ex CM_Disable_DevNode_Ex
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Disconnect_Machine( CM_Disconnect_Machine(
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Dup_Range_List( CM_Dup_Range_List(
IN RANGE_LIST rlhOld, __in RANGE_LIST rlhOld,
IN RANGE_LIST rlhNew, __in RANGE_LIST rlhNew,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Enable_DevNode( CM_Enable_DevNode(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Enable_DevNode_Ex( CM_Enable_DevNode_Ex(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Enable_DevInst CM_Enable_DevNode #define CM_Enable_DevInst CM_Enable_DevNode
#define CM_Enable_DevInst_Ex CM_Enable_DevNode_Ex #define CM_Enable_DevInst_Ex CM_Enable_DevNode_Ex
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Enumerate_Classes( CM_Enumerate_Classes(
IN ULONG ulClassIndex, __in ULONG ulClassIndex,
OUT LPGUID ClassGuid, __out LPGUID ClassGuid,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Enumerate_Classes_Ex( CM_Enumerate_Classes_Ex(
IN ULONG ulClassIndex, __in ULONG ulClassIndex,
OUT LPGUID ClassGuid, __out LPGUID ClassGuid,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Enumerate_EnumeratorsA( CM_Enumerate_EnumeratorsA(
IN ULONG ulEnumIndex, __in ULONG ulEnumIndex,
OUT PCHAR Buffer, __out_ecount(*pulLength) PSTR Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Enumerate_EnumeratorsW( CM_Enumerate_EnumeratorsW(
IN ULONG ulEnumIndex, __in ULONG ulEnumIndex,
OUT PWCHAR Buffer, __out_ecount(*pulLength) PWSTR Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Enumerate_Enumerators_ExA( CM_Enumerate_Enumerators_ExA(
IN ULONG ulEnumIndex, __in ULONG ulEnumIndex,
OUT PCHAR Buffer, __out_ecount(*pulLength) PSTR Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Enumerate_Enumerators_ExW( CM_Enumerate_Enumerators_ExW(
IN ULONG ulEnumIndex, __in ULONG ulEnumIndex,
OUT PWCHAR Buffer, __out_ecount(*pulLength) PWSTR Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
#else #else
#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Find_Range( CM_Find_Range(
OUT PDWORDLONG pullStart, __out PDWORDLONG pullStart,
IN DWORDLONG ullStart, __in DWORDLONG ullStart,
IN ULONG ulLength, __in ULONG ulLength,
IN DWORDLONG ullAlignment, __in DWORDLONG ullAlignment,
IN DWORDLONG ullEnd, __in DWORDLONG ullEnd,
IN RANGE_LIST rlh, __in RANGE_LIST rlh,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_First_Range( CM_First_Range(
IN RANGE_LIST rlh, __in RANGE_LIST rlh,
OUT PDWORDLONG pullStart, __out PDWORDLONG pullStart,
OUT PDWORDLONG pullEnd, __out PDWORDLONG pullEnd,
OUT PRANGE_ELEMENT preElement, __out PRANGE_ELEMENT preElement,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Free_Log_Conf( CM_Free_Log_Conf(
IN LOG_CONF lcLogConfToBeFreed, __in LOG_CONF lcLogConfToBeFreed,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Free_Log_Conf_Ex( CM_Free_Log_Conf_Ex(
IN LOG_CONF lcLogConfToBeFreed, __in LOG_CONF lcLogConfToBeFreed,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Free_Log_Conf_Handle( CM_Free_Log_Conf_Handle(
IN LOG_CONF lcLogConf __in LOG_CONF lcLogConf
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Free_Range_List( CM_Free_Range_List(
IN RANGE_LIST rlh, __in RANGE_LIST rlh,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Free_Res_Des( CM_Free_Res_Des(
OUT PRES_DES prdResDes, __out PRES_DES prdResDes,
IN RES_DES rdResDes, __in RES_DES rdResDes,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Free_Res_Des_Ex( CM_Free_Res_Des_Ex(
OUT PRES_DES prdResDes, __out PRES_DES prdResDes,
IN RES_DES rdResDes, __in RES_DES rdResDes,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Free_Res_Des_Handle( CM_Free_Res_Des_Handle(
IN RES_DES rdResDes __in RES_DES rdResDes
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Child( CM_Get_Child(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Child_Ex( CM_Get_Child_Ex(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_NameA( CM_Get_Class_NameA(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
OUT PCHAR Buffer, __out_ecount_opt(*pulLength) PSTR Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_NameW( CM_Get_Class_NameW(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
OUT PWCHAR Buffer, __out_ecount_opt(*pulLength) PWSTR Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_Name_ExA( CM_Get_Class_Name_ExA(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
OUT PCHAR Buffer, __out_ecount_opt(*pulLength) PSTR Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_Name_ExW( CM_Get_Class_Name_ExW(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
OUT PWCHAR Buffer, __out_ecount_opt(*pulLength) PWSTR Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Class_Name CM_Get_Class_NameW #define CM_Get_Class_Name CM_Get_Class_NameW
#define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW
#else #else
#define CM_Get_Class_Name CM_Get_Class_NameA #define CM_Get_Class_Name CM_Get_Class_NameA
#define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_Key_NameA( CM_Get_Class_Key_NameA(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
OUT LPSTR pszKeyName, __out_ecount_opt(*pulLength) LPSTR pszKeyName,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_Key_NameW( CM_Get_Class_Key_NameW(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
OUT LPWSTR pszKeyName, __out_ecount_opt(*pulLength) LPWSTR pszKeyName,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_Key_Name_ExA( CM_Get_Class_Key_Name_ExA(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
OUT LPSTR pszKeyName, __out_ecount_opt(*pulLength) LPSTR pszKeyName,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_Key_Name_ExW( CM_Get_Class_Key_Name_ExW(
IN LPGUID ClassGuid, __in LPGUID ClassGuid,
OUT LPWSTR pszKeyName, __out_ecount_opt(*pulLength) LPWSTR pszKeyName,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW
#define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW
#else #else
#define CM_Get_Class_Key_Name CM_Get_Class_Key_NameA #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_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Depth( CM_Get_Depth(
OUT PULONG pulDepth, __out PULONG pulDepth,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Depth_Ex( CM_Get_Depth_Ex(
OUT PULONG pulDepth, __out PULONG pulDepth,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_IDA( CM_Get_Device_IDA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
OUT PCHAR Buffer, __out_ecount(BufferLen) PSTR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_IDW( CM_Get_Device_IDW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
OUT PWCHAR Buffer, __out_ecount(BufferLen) PWSTR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_ExA( CM_Get_Device_ID_ExA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
OUT PCHAR Buffer, __out_ecount(BufferLen) PSTR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_ExW( CM_Get_Device_ID_ExW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
OUT PWCHAR Buffer, __out_ecount(BufferLen) PWSTR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Device_ID CM_Get_Device_IDW #define CM_Get_Device_ID CM_Get_Device_IDW
#define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
#else #else
#define CM_Get_Device_ID CM_Get_Device_IDA #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_Ex CM_Get_Device_ID_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_ListA( CM_Get_Device_ID_ListA(
IN PCSTR pszFilter, OPTIONAL __in_opt PCSTR pszFilter,
OUT PCHAR Buffer, __out_ecount(BufferLen) PCHAR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_ListW( CM_Get_Device_ID_ListW(
IN PCWSTR pszFilter, OPTIONAL __in_opt PCWSTR pszFilter,
OUT PWCHAR Buffer, __out_ecount(BufferLen) PWCHAR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_List_ExA( CM_Get_Device_ID_List_ExA(
IN PCSTR pszFilter, OPTIONAL __in_opt PCSTR pszFilter,
OUT PCHAR Buffer, __out_ecount(BufferLen) PCHAR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_List_ExW( CM_Get_Device_ID_List_ExW(
IN PCWSTR pszFilter, OPTIONAL __in_opt PCWSTR pszFilter,
OUT PWCHAR Buffer, __out_ecount(BufferLen) PWCHAR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Device_ID_List CM_Get_Device_ID_ListW #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
#define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
#else #else
#define CM_Get_Device_ID_List CM_Get_Device_ID_ListA #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_Ex CM_Get_Device_ID_List_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_List_SizeA( CM_Get_Device_ID_List_SizeA(
OUT PULONG pulLen, __out PULONG pulLen,
IN PCSTR pszFilter, OPTIONAL __in_opt PCSTR pszFilter,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_List_SizeW( CM_Get_Device_ID_List_SizeW(
OUT PULONG pulLen, __out PULONG pulLen,
IN PCWSTR pszFilter, OPTIONAL __in_opt PCWSTR pszFilter,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_List_Size_ExA( CM_Get_Device_ID_List_Size_ExA(
OUT PULONG pulLen, __out PULONG pulLen,
IN PCSTR pszFilter, OPTIONAL __in_opt PCSTR pszFilter,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_List_Size_ExW( CM_Get_Device_ID_List_Size_ExW(
OUT PULONG pulLen, __out PULONG pulLen,
IN PCWSTR pszFilter, OPTIONAL __in_opt PCWSTR pszFilter,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
#define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
#else #else
#define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA #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_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_Size( CM_Get_Device_ID_Size(
OUT PULONG pulLen, __out PULONG pulLen,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_ID_Size_Ex( CM_Get_Device_ID_Size_Ex(
OUT PULONG pulLen, __out PULONG pulLen,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Registry_PropertyA( CM_Get_DevNode_Registry_PropertyA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProperty, __in ULONG ulProperty,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Registry_PropertyW( CM_Get_DevNode_Registry_PropertyW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProperty, __in ULONG ulProperty,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Registry_Property_ExA( CM_Get_DevNode_Registry_Property_ExA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProperty, __in ULONG ulProperty,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Registry_Property_ExW( CM_Get_DevNode_Registry_Property_ExW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProperty, __in ULONG ulProperty,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW #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_PropertyA CM_Get_DevNode_Registry_PropertyA
#define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_E xW #define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_E xW
#define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_E xA #define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_E xA
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
#define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_E xW #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_E xW
#define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
#define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_E xW #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_E xW
#else #else
#define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
#define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_E xA #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_E xA
#define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
#define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_E xA #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_E xA
#endif // UNICODE #endif // UNICODE
#if (WINVER >= _WIN32_WINNT_WINXP)
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Custom_PropertyA( CM_Get_DevNode_Custom_PropertyA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PCSTR pszCustomPropertyName, __in PCSTR pszCustomPropertyName,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Custom_PropertyW( CM_Get_DevNode_Custom_PropertyW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PCWSTR pszCustomPropertyName, __in PCWSTR pszCustomPropertyName,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Custom_Property_ExA( CM_Get_DevNode_Custom_Property_ExA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PCSTR pszCustomPropertyName, __in PCSTR pszCustomPropertyName,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Custom_Property_ExW( CM_Get_DevNode_Custom_Property_ExW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN PCWSTR pszCustomPropertyName, __in PCWSTR pszCustomPropertyName,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Get_DevInst_Custom_PropertyW CM_Get_DevNode_Custom_PropertyW #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_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_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_ExA CM_Get_DevNode_Custom_Property_ExA
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_DevInst_Custom_Property CM_Get_DevNode_Custom_PropertyW #define CM_Get_DevInst_Custom_Property CM_Get_DevNode_Custom_PropertyW
#define CM_Get_DevInst_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExW #define CM_Get_DevInst_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExW
#define CM_Get_DevNode_Custom_Property CM_Get_DevNode_Custom_PropertyW #define CM_Get_DevNode_Custom_Property CM_Get_DevNode_Custom_PropertyW
#define CM_Get_DevNode_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExW #define CM_Get_DevNode_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExW
#else #else
#define CM_Get_DevInst_Custom_Property CM_Get_DevNode_Custom_PropertyA #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_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 CM_Get_DevNode_Custom_PropertyA
#define CM_Get_DevNode_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExA #define CM_Get_DevNode_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExA
#endif // UNICODE #endif // UNICODE
#endif // (WINVER >= _WIN32_WINNT_WINXP)
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Status( CM_Get_DevNode_Status(
OUT PULONG pulStatus, __out PULONG pulStatus,
OUT PULONG pulProblemNumber, __out PULONG pulProblemNumber,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_DevNode_Status_Ex( CM_Get_DevNode_Status_Ex(
OUT PULONG pulStatus, __out PULONG pulStatus,
OUT PULONG pulProblemNumber, __out PULONG pulProblemNumber,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Get_DevInst_Status CM_Get_DevNode_Status #define CM_Get_DevInst_Status CM_Get_DevNode_Status
#define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_First_Log_Conf( CM_Get_First_Log_Conf(
OUT PLOG_CONF plcLogConf, OPTIONAL __out_opt PLOG_CONF plcLogConf,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_First_Log_Conf_Ex( CM_Get_First_Log_Conf_Ex(
OUT PLOG_CONF plcLogConf, OPTIONAL __out_opt PLOG_CONF plcLogConf,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Global_State( CM_Get_Global_State(
OUT PULONG pulState, __out PULONG pulState,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Global_State_Ex( CM_Get_Global_State_Ex(
OUT PULONG pulState, __out PULONG pulState,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Hardware_Profile_InfoA( CM_Get_Hardware_Profile_InfoA(
IN ULONG ulIndex, __in ULONG ulIndex,
OUT PHWPROFILEINFO_A pHWProfileInfo, __out PHWPROFILEINFO_A pHWProfileInfo,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Hardware_Profile_Info_ExA( CM_Get_Hardware_Profile_Info_ExA(
IN ULONG ulIndex, __in ULONG ulIndex,
OUT PHWPROFILEINFO_A pHWProfileInfo, __out PHWPROFILEINFO_A pHWProfileInfo,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Hardware_Profile_InfoW( CM_Get_Hardware_Profile_InfoW(
IN ULONG ulIndex, __in ULONG ulIndex,
OUT PHWPROFILEINFO_W pHWProfileInfo, __out PHWPROFILEINFO_W pHWProfileInfo,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Hardware_Profile_Info_ExW( CM_Get_Hardware_Profile_Info_ExW(
IN ULONG ulIndex, __in ULONG ulIndex,
OUT PHWPROFILEINFO_W pHWProfileInfo, __out PHWPROFILEINFO_W pHWProfileInfo,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Hardware_Profile_Info CM_Get_Hardware_Profile_InfoW #define CM_Get_Hardware_Profile_Info CM_Get_Hardware_Profile_InfoW
#define CM_Get_Hardware_Profile_Info_Ex CM_Get_Hardware_Profile_Info_ExW #define CM_Get_Hardware_Profile_Info_Ex CM_Get_Hardware_Profile_Info_ExW
#else #else
#define CM_Get_Hardware_Profile_Info CM_Get_Hardware_Profile_InfoA #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_Hardware_Profile_Info_Ex CM_Get_Hardware_Profile_Info_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_HW_Prof_FlagsA( CM_Get_HW_Prof_FlagsA(
IN DEVINSTID_A szDevInstName, __in DEVINSTID_A pDeviceID,
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
OUT PULONG pulValue, __out PULONG pulValue,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_HW_Prof_FlagsW( CM_Get_HW_Prof_FlagsW(
IN DEVINSTID_W szDevInstName, __in DEVINSTID_W pDeviceID,
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
OUT PULONG pulValue, __out PULONG pulValue,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_HW_Prof_Flags_ExA( CM_Get_HW_Prof_Flags_ExA(
IN DEVINSTID_A szDevInstName, __in DEVINSTID_A pDeviceID,
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
OUT PULONG pulValue, __out PULONG pulValue,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_HW_Prof_Flags_ExW( CM_Get_HW_Prof_Flags_ExW(
IN DEVINSTID_W szDevInstName, __in DEVINSTID_W pDeviceID,
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
OUT PULONG pulValue, __out PULONG pulValue,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsW #define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsW
#define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExW #define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExW
#else #else
#define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsA #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_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_AliasA( CM_Get_Device_Interface_AliasA(
IN LPCSTR pszDeviceInterface, __in LPCSTR pszDeviceInterface,
IN LPGUID AliasInterfaceGuid, __in LPGUID AliasInterfaceGuid,
OUT LPSTR pszAliasDeviceInterface, __out_ecount(*pulLength) LPSTR pszAliasDeviceInterface,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_AliasW( CM_Get_Device_Interface_AliasW(
IN LPCWSTR pszDeviceInterface, __in LPCWSTR pszDeviceInterface,
IN LPGUID AliasInterfaceGuid, __in LPGUID AliasInterfaceGuid,
OUT LPWSTR pszAliasDeviceInterface, __out_ecount(*pulLength) LPWSTR pszAliasDeviceInterface,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_Alias_ExA( CM_Get_Device_Interface_Alias_ExA(
IN LPCSTR pszDeviceInterface, __in LPCSTR pszDeviceInterface,
IN LPGUID AliasInterfaceGuid, __in LPGUID AliasInterfaceGuid,
OUT LPSTR pszAliasDeviceInterface, __out_ecount(*pulLength) LPSTR pszAliasDeviceInterface,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_Alias_ExW( CM_Get_Device_Interface_Alias_ExW(
IN LPCWSTR pszDeviceInterface, __in LPCWSTR pszDeviceInterface,
IN LPGUID AliasInterfaceGuid, __in LPGUID AliasInterfaceGuid,
OUT LPWSTR pszAliasDeviceInterface, __out_ecount(*pulLength) LPWSTR pszAliasDeviceInterface,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Device_Interface_Alias CM_Get_Device_Interface_AliasW #define CM_Get_Device_Interface_Alias CM_Get_Device_Interface_AliasW
#define CM_Get_Device_Interface_Alias_Ex CM_Get_Device_Interface_Alias_ExW #define CM_Get_Device_Interface_Alias_Ex CM_Get_Device_Interface_Alias_ExW
#else #else
#define CM_Get_Device_Interface_Alias CM_Get_Device_Interface_AliasA #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_Alias_Ex CM_Get_Device_Interface_Alias_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_ListA( CM_Get_Device_Interface_ListA(
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN DEVINSTID_A pDeviceID, OPTIONAL __in_opt DEVINSTID_A pDeviceID,
OUT PCHAR Buffer, __out_ecount(BufferLen) PCHAR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_ListW( CM_Get_Device_Interface_ListW(
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN DEVINSTID_W pDeviceID, OPTIONAL __in_opt DEVINSTID_W pDeviceID,
OUT PWCHAR Buffer, __out_ecount(BufferLen) PWCHAR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_List_ExA( CM_Get_Device_Interface_List_ExA(
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN DEVINSTID_A pDeviceID, OPTIONAL __in_opt DEVINSTID_A pDeviceID,
OUT PCHAR Buffer, __out_ecount(BufferLen) PCHAR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_List_ExW( CM_Get_Device_Interface_List_ExW(
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN DEVINSTID_W pDeviceID, OPTIONAL __in_opt DEVINSTID_W pDeviceID,
OUT PWCHAR Buffer, __out_ecount(BufferLen) PWCHAR Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Device_Interface_List CM_Get_Device_Interface_ListW #define CM_Get_Device_Interface_List CM_Get_Device_Interface_ListW
#define CM_Get_Device_Interface_List_Ex CM_Get_Device_Interface_List_ExW #define CM_Get_Device_Interface_List_Ex CM_Get_Device_Interface_List_ExW
#else #else
#define CM_Get_Device_Interface_List CM_Get_Device_Interface_ListA #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_Ex CM_Get_Device_Interface_List_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_List_SizeA( CM_Get_Device_Interface_List_SizeA(
IN PULONG pulLen, __out PULONG pulLen,
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN DEVINSTID_A pDeviceID, OPTIONAL __in_opt DEVINSTID_A pDeviceID,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_List_SizeW( CM_Get_Device_Interface_List_SizeW(
IN PULONG pulLen, __out PULONG pulLen,
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN DEVINSTID_W pDeviceID, OPTIONAL __in_opt DEVINSTID_W pDeviceID,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_List_Size_ExA( CM_Get_Device_Interface_List_Size_ExA(
IN PULONG pulLen, __out PULONG pulLen,
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN DEVINSTID_A pDeviceID, OPTIONAL __in_opt DEVINSTID_A pDeviceID,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Device_Interface_List_Size_ExW( CM_Get_Device_Interface_List_Size_ExW(
IN PULONG pulLen, __out PULONG pulLen,
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN DEVINSTID_W pDeviceID, OPTIONAL __in_opt DEVINSTID_W pDeviceID,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Device_Interface_List_Size CM_Get_Device_Interface_List_SizeW #define CM_Get_Device_Interface_List_Size CM_Get_Device_Interface_List_SizeW
#define CM_Get_Device_Interface_List_Size_Ex CM_Get_Device_Interface_List_Size_ ExW #define CM_Get_Device_Interface_List_Size_Ex CM_Get_Device_Interface_List_Size_ ExW
#else #else
#define CM_Get_Device_Interface_List_Size CM_Get_Device_Interface_List_SizeA #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_Device_Interface_List_Size_Ex CM_Get_Device_Interface_List_Size_ ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Log_Conf_Priority( CM_Get_Log_Conf_Priority(
IN LOG_CONF lcLogConf, __in LOG_CONF lcLogConf,
OUT PPRIORITY pPriority, __out PPRIORITY pPriority,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Log_Conf_Priority_Ex( CM_Get_Log_Conf_Priority_Ex(
IN LOG_CONF lcLogConf, __in LOG_CONF lcLogConf,
OUT PPRIORITY pPriority, __out PPRIORITY pPriority,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Next_Log_Conf( CM_Get_Next_Log_Conf(
OUT PLOG_CONF plcLogConf, OPTIONAL __out_opt PLOG_CONF plcLogConf,
IN LOG_CONF lcLogConf, __in LOG_CONF lcLogConf,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Next_Log_Conf_Ex( CM_Get_Next_Log_Conf_Ex(
OUT PLOG_CONF plcLogConf, OPTIONAL __out_opt PLOG_CONF plcLogConf,
IN LOG_CONF lcLogConf, __in LOG_CONF lcLogConf,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Parent( CM_Get_Parent(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Parent_Ex( CM_Get_Parent_Ex(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Res_Des_Data( CM_Get_Res_Des_Data(
IN RES_DES rdResDes, __in RES_DES rdResDes,
OUT PVOID Buffer, __out_bcount(BufferLen) PVOID Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Res_Des_Data_Ex( CM_Get_Res_Des_Data_Ex(
IN RES_DES rdResDes, __in RES_DES rdResDes,
OUT PVOID Buffer, __out_bcount(BufferLen) PVOID Buffer,
IN ULONG BufferLen, __in ULONG BufferLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Res_Des_Data_Size( CM_Get_Res_Des_Data_Size(
OUT PULONG pulSize, __out PULONG pulSize,
IN RES_DES rdResDes, __in RES_DES rdResDes,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Res_Des_Data_Size_Ex( CM_Get_Res_Des_Data_Size_Ex(
OUT PULONG pulSize, __out PULONG pulSize,
IN RES_DES rdResDes, __in RES_DES rdResDes,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Sibling( CM_Get_Sibling(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINST DevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Sibling_Ex( CM_Get_Sibling_Ex(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINST DevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
WORD WORD
WINAPI WINAPI
CM_Get_Version( CM_Get_Version(
VOID VOID
); );
CMAPI CMAPI
WORD WORD
WINAPI WINAPI
CM_Get_Version_Ex( CM_Get_Version_Ex(
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#if (WINVER >= _WIN32_WINNT_WINXP)
CMAPI CMAPI
BOOL BOOL
WINAPI WINAPI
CM_Is_Version_Available( CM_Is_Version_Available(
IN WORD wVersion __in WORD wVersion
); );
CMAPI CMAPI
BOOL BOOL
WINAPI WINAPI
CM_Is_Version_Available_Ex( CM_Is_Version_Available_Ex(
IN WORD wVersion, __in WORD wVersion,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#endif // (WINVER >= _WIN32_WINNT_WINXP)
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Intersect_Range_List( CM_Intersect_Range_List(
IN RANGE_LIST rlhOld1, __in RANGE_LIST rlhOld1,
IN RANGE_LIST rlhOld2, __in RANGE_LIST rlhOld2,
IN RANGE_LIST rlhNew, __in RANGE_LIST rlhNew,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Invert_Range_List( CM_Invert_Range_List(
IN RANGE_LIST rlhOld, __in RANGE_LIST rlhOld,
IN RANGE_LIST rlhNew, __in RANGE_LIST rlhNew,
IN DWORDLONG ullMaxValue, __in DWORDLONG ullMaxValue,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Locate_DevNodeA( CM_Locate_DevNodeA(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINSTID_A pDeviceID, OPTIONAL __in_opt DEVINSTID_A pDeviceID,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Locate_DevNodeW( CM_Locate_DevNodeW(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINSTID_W pDeviceID, OPTIONAL __in_opt DEVINSTID_W pDeviceID,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Locate_DevNode_ExA( CM_Locate_DevNode_ExA(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINSTID_A pDeviceID, OPTIONAL __in_opt DEVINSTID_A pDeviceID,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Locate_DevNode_ExW( CM_Locate_DevNode_ExW(
OUT PDEVINST pdnDevInst, __out PDEVINST pdnDevInst,
IN DEVINSTID_W pDeviceID, OPTIONAL __in_opt DEVINSTID_W pDeviceID,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Locate_DevInstA CM_Locate_DevNodeA #define CM_Locate_DevInstA CM_Locate_DevNodeA
#define CM_Locate_DevInstW CM_Locate_DevNodeW #define CM_Locate_DevInstW CM_Locate_DevNodeW
#define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
#define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
#ifdef UNICODE #ifdef UNICODE
#define CM_Locate_DevNode CM_Locate_DevNodeW #define CM_Locate_DevNode CM_Locate_DevNodeW
#define CM_Locate_DevInst CM_Locate_DevNodeW #define CM_Locate_DevInst CM_Locate_DevNodeW
#define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
#define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
#else #else
#define CM_Locate_DevNode CM_Locate_DevNodeA #define CM_Locate_DevNode CM_Locate_DevNodeA
#define CM_Locate_DevInst CM_Locate_DevNodeA #define CM_Locate_DevInst CM_Locate_DevNodeA
#define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
#define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Merge_Range_List( CM_Merge_Range_List(
IN RANGE_LIST rlhOld1, __in RANGE_LIST rlhOld1,
IN RANGE_LIST rlhOld2, __in RANGE_LIST rlhOld2,
IN RANGE_LIST rlhNew, __in RANGE_LIST rlhNew,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Modify_Res_Des( CM_Modify_Res_Des(
OUT PRES_DES prdResDes, __out PRES_DES prdResDes,
IN RES_DES rdResDes, __in RES_DES rdResDes,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN PCVOID ResourceData, __in_bcount(ResourceLen) PCVOID ResourceData,
IN ULONG ResourceLen, __in ULONG ResourceLen,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Modify_Res_Des_Ex( CM_Modify_Res_Des_Ex(
OUT PRES_DES prdResDes, __out PRES_DES prdResDes,
IN RES_DES rdResDes, __in RES_DES rdResDes,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN PCVOID ResourceData, __in_bcount(ResourceLen) PCVOID ResourceData,
IN ULONG ResourceLen, __in ULONG ResourceLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Move_DevNode( CM_Move_DevNode(
IN DEVINST dnFromDevInst, __in DEVINST dnFromDevInst,
IN DEVINST dnToDevInst, __in DEVINST dnToDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Move_DevNode_Ex( CM_Move_DevNode_Ex(
IN DEVINST dnFromDevInst, __in DEVINST dnFromDevInst,
IN DEVINST dnToDevInst, __in DEVINST dnToDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Move_DevInst CM_Move_DevNode #define CM_Move_DevInst CM_Move_DevNode
#define CM_Move_DevInst_Ex CM_Move_DevNode_Ex #define CM_Move_DevInst_Ex CM_Move_DevNode_Ex
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Next_Range( CM_Next_Range(
IN OUT PRANGE_ELEMENT preElement, __inout PRANGE_ELEMENT preElement,
OUT PDWORDLONG pullStart, __out PDWORDLONG pullStart,
OUT PDWORDLONG pullEnd, __out PDWORDLONG pullEnd,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Next_Res_Des( CM_Get_Next_Res_Des(
OUT PRES_DES prdResDes, __out PRES_DES prdResDes,
IN RES_DES rdResDes, __in RES_DES rdResDes,
IN RESOURCEID ForResource, __in RESOURCEID ForResource,
OUT PRESOURCEID pResourceID, __out_opt PRESOURCEID pResourceID,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Next_Res_Des_Ex( CM_Get_Next_Res_Des_Ex(
OUT PRES_DES prdResDes, __out PRES_DES prdResDes,
IN RES_DES rdResDes, __in RES_DES rdResDes,
IN RESOURCEID ForResource, __in RESOURCEID ForResource,
OUT PRESOURCEID pResourceID, __out_opt PRESOURCEID pResourceID,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Open_Class_KeyA( CM_Open_Class_KeyA(
IN LPGUID ClassGuid, OPTIONAL __in_opt LPGUID ClassGuid,
IN LPCSTR pszClassName, OPTIONAL __in_opt LPCSTR pszClassName,
IN REGSAM samDesired, __in REGSAM samDesired,
IN REGDISPOSITION Disposition, __in REGDISPOSITION Disposition,
OUT PHKEY phkClass, __out PHKEY phkClass,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Open_Class_KeyW( CM_Open_Class_KeyW(
IN LPGUID ClassGuid, OPTIONAL __in_opt LPGUID ClassGuid,
IN LPCWSTR pszClassName, OPTIONAL __in_opt LPCWSTR pszClassName,
IN REGSAM samDesired, __in REGSAM samDesired,
IN REGDISPOSITION Disposition, __in REGDISPOSITION Disposition,
OUT PHKEY phkClass, __out PHKEY phkClass,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Open_Class_Key_ExA( CM_Open_Class_Key_ExA(
IN LPGUID pszClassGuid, OPTIONAL __in_opt LPGUID ClassGuid,
IN LPCSTR pszClassName, OPTIONAL __in_opt LPCSTR pszClassName,
IN REGSAM samDesired, __in REGSAM samDesired,
IN REGDISPOSITION Disposition, __in REGDISPOSITION Disposition,
OUT PHKEY phkClass, __out PHKEY phkClass,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Open_Class_Key_ExW( CM_Open_Class_Key_ExW(
IN LPGUID pszClassGuid, OPTIONAL __in_opt LPGUID ClassGuid,
IN LPCWSTR pszClassName, OPTIONAL __in_opt LPCWSTR pszClassName,
IN REGSAM samDesired, __in REGSAM samDesired,
IN REGDISPOSITION Disposition, __in REGDISPOSITION Disposition,
OUT PHKEY phkClass, __out PHKEY phkClass,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Open_Class_Key CM_Open_Class_KeyW #define CM_Open_Class_Key CM_Open_Class_KeyW
#define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW
#else #else
#define CM_Open_Class_Key CM_Open_Class_KeyA #define CM_Open_Class_Key CM_Open_Class_KeyA
#define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Open_DevNode_Key( CM_Open_DevNode_Key(
IN DEVINST dnDevNode, __in DEVINST dnDevNode,
IN REGSAM samDesired, __in REGSAM samDesired,
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
IN REGDISPOSITION Disposition, __in REGDISPOSITION Disposition,
OUT PHKEY phkDevice, __out PHKEY phkDevice,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Open_DevNode_Key_Ex( CM_Open_DevNode_Key_Ex(
IN DEVINST dnDevNode, __in DEVINST dnDevNode,
IN REGSAM samDesired, __in REGSAM samDesired,
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
IN REGDISPOSITION Disposition, __in REGDISPOSITION Disposition,
OUT PHKEY phkDevice, __out PHKEY phkDevice,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Open_DevInst_Key CM_Open_DevNode_Key #define CM_Open_DevInst_Key CM_Open_DevNode_Key
#define CM_Open_DevInst_Key_Ex CM_Open_DevNode_Key_Ex #define CM_Open_DevInst_Key_Ex CM_Open_DevNode_Key_Ex
#if (WINVER >= _WIN32_WINNT_LONGHORN)
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
);
#ifdef UNICODE
#define CM_Open_Device_Interface_Key CM_Open_Device_Interface_KeyW
#define CM_Open_Device_Interface_Key_Ex CM_Open_Device_Interface_Key_ExW
#else
#define CM_Open_Device_Interface_Key CM_Open_Device_Interface_KeyA
#define CM_Open_Device_Interface_Key_Ex CM_Open_Device_Interface_Key_ExA
#endif // UNICODE
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
);
#ifdef UNICODE
#define CM_Delete_Device_Interface_Key CM_Delete_Device_Interface_KeyW
#define CM_Delete_Device_Interface_Key_Ex CM_Delete_Device_Interface_Key_ExW
#else
#define CM_Delete_Device_Interface_Key CM_Delete_Device_Interface_KeyA
#define CM_Delete_Device_Interface_Key_Ex CM_Delete_Device_Interface_Key_ExA
#endif // UNICODE
#endif // (WINVER >= _WIN32_WINNT_LONGHORN)
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_Arbitrator_Free_Data( CM_Query_Arbitrator_Free_Data(
OUT PVOID pData, __out_bcount(DataLen) PVOID pData,
IN ULONG DataLen, __in ULONG DataLen,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_Arbitrator_Free_Data_Ex( CM_Query_Arbitrator_Free_Data_Ex(
OUT PVOID pData, __out_bcount(DataLen) PVOID pData,
IN ULONG DataLen, __in ULONG DataLen,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_Arbitrator_Free_Size( CM_Query_Arbitrator_Free_Size(
OUT PULONG pulSize, __out PULONG pulSize,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_Arbitrator_Free_Size_Ex( CM_Query_Arbitrator_Free_Size_Ex(
OUT PULONG pulSize, __out PULONG pulSize,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_Remove_SubTree( CM_Query_Remove_SubTree(
IN DEVINST dnAncestor, __in DEVINST dnAncestor,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_Remove_SubTree_Ex( CM_Query_Remove_SubTree_Ex(
IN DEVINST dnAncestor, __in DEVINST dnAncestor,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_And_Remove_SubTreeA( CM_Query_And_Remove_SubTreeA(
IN DEVINST dnAncestor, __in DEVINST dnAncestor,
OUT PPNP_VETO_TYPE pVetoType, __out_opt PPNP_VETO_TYPE pVetoType,
OUT LPSTR pszVetoName, __out_ecount_opt(ulNameLength) LPSTR pszVetoName,
IN ULONG ulNameLength, __in ULONG ulNameLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_And_Remove_SubTree_ExA( CM_Query_And_Remove_SubTree_ExA(
IN DEVINST dnAncestor, __in DEVINST dnAncestor,
OUT PPNP_VETO_TYPE pVetoType, __out_opt PPNP_VETO_TYPE pVetoType,
OUT LPSTR pszVetoName, __out_ecount_opt(ulNameLength) LPSTR pszVetoName,
IN ULONG ulNameLength, __in ULONG ulNameLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_And_Remove_SubTreeW( CM_Query_And_Remove_SubTreeW(
IN DEVINST dnAncestor, __in DEVINST dnAncestor,
OUT PPNP_VETO_TYPE pVetoType, __out_opt PPNP_VETO_TYPE pVetoType,
OUT LPWSTR pszVetoName, __out_ecount_opt(ulNameLength) LPWSTR pszVetoName,
IN ULONG ulNameLength, __in ULONG ulNameLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_And_Remove_SubTree_ExW( CM_Query_And_Remove_SubTree_ExW(
IN DEVINST dnAncestor, __in DEVINST dnAncestor,
OUT PPNP_VETO_TYPE pVetoType, __out_opt PPNP_VETO_TYPE pVetoType,
OUT LPWSTR pszVetoName, __out_ecount_opt(ulNameLength) LPWSTR pszVetoName,
IN ULONG ulNameLength, __in ULONG ulNameLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Query_And_Remove_SubTree CM_Query_And_Remove_SubTreeW #define CM_Query_And_Remove_SubTree CM_Query_And_Remove_SubTreeW
#define CM_Query_And_Remove_SubTree_Ex CM_Query_And_Remove_SubTree_ExW #define CM_Query_And_Remove_SubTree_Ex CM_Query_And_Remove_SubTree_ExW
#else #else
#define CM_Query_And_Remove_SubTree CM_Query_And_Remove_SubTreeA #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_Query_And_Remove_SubTree_Ex CM_Query_And_Remove_SubTree_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Request_Device_EjectA( CM_Request_Device_EjectA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
OUT PPNP_VETO_TYPE pVetoType, __out_opt PPNP_VETO_TYPE pVetoType,
OUT LPSTR pszVetoName, __out_ecount_opt(ulNameLength) LPSTR pszVetoName,
IN ULONG ulNameLength, __in ULONG ulNameLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Request_Device_Eject_ExA( CM_Request_Device_Eject_ExA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
OUT PPNP_VETO_TYPE pVetoType, __out_opt PPNP_VETO_TYPE pVetoType,
OUT LPSTR pszVetoName, __out_ecount_opt(ulNameLength) LPSTR pszVetoName,
IN ULONG ulNameLength, __in ULONG ulNameLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Request_Device_EjectW( CM_Request_Device_EjectW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
OUT PPNP_VETO_TYPE pVetoType, __out_opt PPNP_VETO_TYPE pVetoType,
OUT LPWSTR pszVetoName, __out_ecount_opt(ulNameLength) LPWSTR pszVetoName,
IN ULONG ulNameLength, __in ULONG ulNameLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Request_Device_Eject_ExW( CM_Request_Device_Eject_ExW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
OUT PPNP_VETO_TYPE pVetoType, __out_opt PPNP_VETO_TYPE pVetoType,
OUT LPWSTR pszVetoName, __out_ecount_opt(ulNameLength) LPWSTR pszVetoName,
IN ULONG ulNameLength, __in ULONG ulNameLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Request_Device_Eject CM_Request_Device_EjectW #define CM_Request_Device_Eject CM_Request_Device_EjectW
#define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
#else #else
#define CM_Request_Device_Eject CM_Request_Device_EjectA #define CM_Request_Device_Eject CM_Request_Device_EjectA
#define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Reenumerate_DevNode( CM_Reenumerate_DevNode(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Reenumerate_DevNode_Ex( CM_Reenumerate_DevNode_Ex(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Reenumerate_DevInst CM_Reenumerate_DevNode #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
#define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Register_Device_InterfaceA( CM_Register_Device_InterfaceA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN LPCSTR pszReference, OPTIONAL __in_opt LPCSTR pszReference,
OUT LPSTR pszDeviceInterface, __out_ecount(*pulLength) LPSTR pszDeviceInterface,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Register_Device_InterfaceW( CM_Register_Device_InterfaceW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN LPCWSTR pszReference, OPTIONAL __in_opt LPCWSTR pszReference,
OUT LPWSTR pszDeviceInterface, __out_ecount(*pulLength) LPWSTR pszDeviceInterface,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Register_Device_Interface_ExA( CM_Register_Device_Interface_ExA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN LPCSTR pszReference, OPTIONAL __in_opt LPCSTR pszReference,
OUT LPSTR pszDeviceInterface, __out_ecount(*pulLength) LPSTR pszDeviceInterface,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Register_Device_Interface_ExW( CM_Register_Device_Interface_ExW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN LPGUID InterfaceClassGuid, __in LPGUID InterfaceClassGuid,
IN LPCWSTR pszReference, OPTIONAL __in_opt LPCWSTR pszReference,
OUT LPWSTR pszDeviceInterface, __out_ecount(*pulLength) LPWSTR pszDeviceInterface,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Register_Device_Interface CM_Register_Device_InterfaceW #define CM_Register_Device_Interface CM_Register_Device_InterfaceW
#define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExW #define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExW
#else #else
#define CM_Register_Device_Interface CM_Register_Device_InterfaceA #define CM_Register_Device_Interface CM_Register_Device_InterfaceA
#define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExA #define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_DevNode_Problem_Ex( CM_Set_DevNode_Problem_Ex(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProblem, __in ULONG ulProblem,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_DevNode_Problem( CM_Set_DevNode_Problem(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProblem, __in ULONG ulProblem,
IN ULONG ulFlags __in ULONG ulFlags
); );
#define CM_Set_DevInst_Problem CM_Set_DevNode_Problem #define CM_Set_DevInst_Problem CM_Set_DevNode_Problem
#define CM_Set_DevInst_Problem_Ex CM_Set_DevNode_Problem_Ex #define CM_Set_DevInst_Problem_Ex CM_Set_DevNode_Problem_Ex
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Unregister_Device_InterfaceA( CM_Unregister_Device_InterfaceA(
IN LPCSTR pszDeviceInterface, __in LPCSTR pszDeviceInterface,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Unregister_Device_InterfaceW( CM_Unregister_Device_InterfaceW(
IN LPCWSTR pszDeviceInterface, __in LPCWSTR pszDeviceInterface,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Unregister_Device_Interface_ExA( CM_Unregister_Device_Interface_ExA(
IN LPCSTR pszDeviceInterface, __in LPCSTR pszDeviceInterface,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Unregister_Device_Interface_ExW( CM_Unregister_Device_Interface_ExW(
IN LPCWSTR pszDeviceInterface, __in LPCWSTR pszDeviceInterface,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Unregister_Device_Interface CM_Unregister_Device_InterfaceW #define CM_Unregister_Device_Interface CM_Unregister_Device_InterfaceW
#define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExW #define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExW
#else #else
#define CM_Unregister_Device_Interface CM_Unregister_Device_InterfaceA #define CM_Unregister_Device_Interface CM_Unregister_Device_InterfaceA
#define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExA #define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Register_Device_Driver( CM_Register_Device_Driver(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Register_Device_Driver_Ex( CM_Register_Device_Driver_Ex(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Remove_SubTree( CM_Remove_SubTree(
IN DEVINST dnAncestor, __in DEVINST dnAncestor,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Remove_SubTree_Ex( CM_Remove_SubTree_Ex(
IN DEVINST dnAncestor, __in DEVINST dnAncestor,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_DevNode_Registry_PropertyA( CM_Set_DevNode_Registry_PropertyA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProperty, __in ULONG ulProperty,
IN PCVOID Buffer, OPTIONAL __in_bcount_opt(ulLength) PCVOID Buffer,
IN ULONG ulLength, __in ULONG ulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_DevNode_Registry_PropertyW( CM_Set_DevNode_Registry_PropertyW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProperty, __in ULONG ulProperty,
IN PCVOID Buffer, OPTIONAL __in_bcount_opt(ulLength) PCVOID Buffer,
IN ULONG ulLength, __in ULONG ulLength,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_DevNode_Registry_Property_ExA( CM_Set_DevNode_Registry_Property_ExA(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProperty, __in ULONG ulProperty,
IN PCVOID Buffer, OPTIONAL __in_bcount_opt(ulLength) PCVOID Buffer,
IN ULONG ulLength, __in ULONG ulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_DevNode_Registry_Property_ExW( CM_Set_DevNode_Registry_Property_ExW(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulProperty, __in ULONG ulProperty,
IN PCVOID Buffer, OPTIONAL __in_bcount_opt(ulLength) PCVOID Buffer,
IN ULONG ulLength, __in ULONG ulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW #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_PropertyA CM_Set_DevNode_Registry_PropertyA
#define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_E xW #define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_E xW
#define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_E xA #define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_E xA
#ifdef UNICODE #ifdef UNICODE
#define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
#define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_E xW #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_E xW
#define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
#define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_E xW #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_E xW
#else #else
#define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
#define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_E xA #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_E xA
#define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
#define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_E xA #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_E xA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Is_Dock_Station_Present( CM_Is_Dock_Station_Present(
OUT PBOOL pbPresent __out PBOOL pbPresent
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Is_Dock_Station_Present_Ex( CM_Is_Dock_Station_Present_Ex(
OUT PBOOL pbPresent, __out PBOOL pbPresent,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Request_Eject_PC( CM_Request_Eject_PC(
VOID VOID
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Request_Eject_PC_Ex( CM_Request_Eject_PC_Ex(
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_HW_Prof_FlagsA( CM_Set_HW_Prof_FlagsA(
IN DEVINSTID_A szDevInstName, __in DEVINSTID_A pDeviceID,
IN ULONG ulConfig, __in ULONG ulConfig,
IN ULONG ulValue, __in ULONG ulValue,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_HW_Prof_FlagsW( CM_Set_HW_Prof_FlagsW(
IN DEVINSTID_W szDevInstName, __in DEVINSTID_W pDeviceID,
IN ULONG ulConfig, __in ULONG ulConfig,
IN ULONG ulValue, __in ULONG ulValue,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_HW_Prof_Flags_ExA( CM_Set_HW_Prof_Flags_ExA(
IN DEVINSTID_A szDevInstName, __in DEVINSTID_A pDeviceID,
IN ULONG ulConfig, __in ULONG ulConfig,
IN ULONG ulValue, __in ULONG ulValue,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_HW_Prof_Flags_ExW( CM_Set_HW_Prof_Flags_ExW(
IN DEVINSTID_W szDevInstName, __in DEVINSTID_W pDeviceID,
IN ULONG ulConfig, __in ULONG ulConfig,
IN ULONG ulValue, __in ULONG ulValue,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsW #define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsW
#define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExW #define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExW
#else #else
#define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsA #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_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Setup_DevNode( CM_Setup_DevNode(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Setup_DevNode_Ex( CM_Setup_DevNode_Ex(
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Setup_DevInst CM_Setup_DevNode #define CM_Setup_DevInst CM_Setup_DevNode
#define CM_Setup_DevInst_Ex CM_Setup_DevNode_Ex #define CM_Setup_DevInst_Ex CM_Setup_DevNode_Ex
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Test_Range_Available( CM_Test_Range_Available(
IN DWORDLONG ullStartValue, __in DWORDLONG ullStartValue,
IN DWORDLONG ullEndValue, __in DWORDLONG ullEndValue,
IN RANGE_LIST rlh, __in RANGE_LIST rlh,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Uninstall_DevNode( CM_Uninstall_DevNode(
IN DEVNODE dnPhantom, __in DEVNODE dnDevInst,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Uninstall_DevNode_Ex( CM_Uninstall_DevNode_Ex(
IN DEVNODE dnPhantom, __in DEVNODE dnDevInst,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HANDLE hMachine __in_opt HMACHINE hMachine
); );
#define CM_Uninstall_DevInst CM_Uninstall_DevNode #define CM_Uninstall_DevInst CM_Uninstall_DevNode
#define CM_Uninstall_DevInst_Ex CM_Uninstall_DevNode_Ex #define CM_Uninstall_DevInst_Ex CM_Uninstall_DevNode_Ex
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Run_Detection( CM_Run_Detection(
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Run_Detection_Ex( CM_Run_Detection_Ex(
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#if (WINVER >= _WIN32_WINNT_LONGHORN)
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_bcount(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,
__in GUID **DestinationSchemeGuid,
__out PDWORD Error
);
CONFIGRET
CM_Delete_PowerScheme (
__in CONST GUID *SchemeGuid,
__out PDWORD Error
);
CONFIGRET
CM_Import_PowerScheme (
__in LPCWSTR ImportFileNamePath,
__deref_inout GUID **DestinationSchemeGuid,
__out PDWORD Error
);
#endif // (WINVER >= _WIN32_WINNT_LONGHORN)
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_HW_Prof( CM_Set_HW_Prof(
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
IN ULONG ulFlags __in ULONG ulFlags
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_HW_Prof_Ex( CM_Set_HW_Prof_Ex(
IN ULONG ulHardwareProfile, __in ULONG ulHardwareProfile,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Query_Resource_Conflict_List( CM_Query_Resource_Conflict_List(
OUT PCONFLICT_LIST pclConflictList, __out PCONFLICT_LIST pclConflictList,
IN DEVINST dnDevInst, __in DEVINST dnDevInst,
IN RESOURCEID ResourceID, __in RESOURCEID ResourceID,
IN PCVOID ResourceData, __in_bcount(ResourceLen) PCVOID ResourceData,
IN ULONG ResourceLen, __in ULONG ResourceLen,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Free_Resource_Conflict_Handle( CM_Free_Resource_Conflict_Handle(
IN CONFLICT_LIST clConflictList __in CONFLICT_LIST clConflictList
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Resource_Conflict_Count( CM_Get_Resource_Conflict_Count(
IN CONFLICT_LIST clConflictList, __in CONFLICT_LIST clConflictList,
OUT PULONG pulCount __out PULONG pulCount
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Resource_Conflict_DetailsA( CM_Get_Resource_Conflict_DetailsA(
IN CONFLICT_LIST clConflictList, __in CONFLICT_LIST clConflictList,
IN ULONG ulIndex, __in ULONG ulIndex,
IN OUT PCONFLICT_DETAILS_A pConflictDetails __inout PCONFLICT_DETAILS_A pConflictDetails
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Resource_Conflict_DetailsW( CM_Get_Resource_Conflict_DetailsW(
IN CONFLICT_LIST clConflictList, __in CONFLICT_LIST clConflictList,
IN ULONG ulIndex, __in ULONG ulIndex,
IN OUT PCONFLICT_DETAILS_W pConflictDetails __inout PCONFLICT_DETAILS_W pConflictDetails
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
#else #else
#define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
#endif // UNICODE #endif // UNICODE
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_Registry_PropertyW( CM_Get_Class_Registry_PropertyW(
IN LPGUID ClassGUID, __in LPGUID ClassGuid,
IN ULONG ulProperty, __in ULONG ulProperty,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_Class_Registry_PropertyW( CM_Set_Class_Registry_PropertyW(
IN LPGUID ClassGUID, __in LPGUID ClassGuid,
IN ULONG ulProperty, __in ULONG ulProperty,
IN PCVOID Buffer, OPTIONAL __in_bcount_opt(ulLength) PCVOID Buffer,
IN ULONG ulLength, __in ULONG ulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Get_Class_Registry_PropertyA( CM_Get_Class_Registry_PropertyA(
IN LPGUID ClassGUID, __in LPGUID ClassGuid,
IN ULONG ulProperty, __in ULONG ulProperty,
OUT PULONG pulRegDataType, OPTIONAL __out_opt PULONG pulRegDataType,
OUT PVOID Buffer, OPTIONAL __out_bcount_opt(*pulLength) PVOID Buffer,
IN OUT PULONG pulLength, __inout PULONG pulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
CMAPI CMAPI
CONFIGRET CONFIGRET
WINAPI WINAPI
CM_Set_Class_Registry_PropertyA( CM_Set_Class_Registry_PropertyA(
IN LPGUID ClassGUID, __in LPGUID ClassGuid,
IN ULONG ulProperty, __in ULONG ulProperty,
IN PCVOID Buffer, OPTIONAL __in_bcount_opt(ulLength) PCVOID Buffer,
IN ULONG ulLength, __in ULONG ulLength,
IN ULONG ulFlags, __in ULONG ulFlags,
IN HMACHINE hMachine __in_opt HMACHINE hMachine
); );
#ifdef UNICODE #ifdef UNICODE
#define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyW #define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyW
#define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyW #define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyW
#else #else
#define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyA #define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyA
#define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyA #define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyA
#endif // UNICODE #endif // UNICODE
#if (WINVER >= _WIN32_WINNT_WINXP)
#define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
DWORD DWORD
WINAPI WINAPI
CM_WaitNoPendingInstallEvents( CM_WaitNoPendingInstallEvents(
IN DWORD dwTimeout __in DWORD dwTimeout
); );
#endif // (WINVER >= _WIN32_WINNT_WINXP)
//-------------------------------------------------------------- //--------------------------------------------------------------
// Configuration Manager return status codes // Configuration Manager return status codes
//-------------------------------------------------------------- //--------------------------------------------------------------
#define CR_SUCCESS (0x00000000) #define CR_SUCCESS (0x00000000)
#define CR_DEFAULT (0x00000001) #define CR_DEFAULT (0x00000001)
#define CR_OUT_OF_MEMORY (0x00000002) #define CR_OUT_OF_MEMORY (0x00000002)
#define CR_INVALID_POINTER (0x00000003) #define CR_INVALID_POINTER (0x00000003)
#define CR_INVALID_FLAG (0x00000004) #define CR_INVALID_FLAG (0x00000004)
skipping to change at line 3295 skipping to change at line 3480
#define CR_INVALID_REFERENCE_STRING (0x00000038) #define CR_INVALID_REFERENCE_STRING (0x00000038)
#define CR_INVALID_CONFLICT_LIST (0x00000039) #define CR_INVALID_CONFLICT_LIST (0x00000039)
#define CR_INVALID_INDEX (0x0000003A) #define CR_INVALID_INDEX (0x0000003A)
#define CR_INVALID_STRUCTURE_SIZE (0x0000003B) #define CR_INVALID_STRUCTURE_SIZE (0x0000003B)
#define NUM_CR_RESULTS (0x0000003C) #define NUM_CR_RESULTS (0x0000003C)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // _CFGMGR32_ #endif // _CFGMGR32_H_
 End of changes. 248 change blocks. 
1059 lines changed or deleted 1249 lines changed or added


 setupapi.h (5.2.3790.3959-Windows 5.0)   setupapi.h (6.0.6002.18005-Windows 6.0) 
skipping to change at line 21 skipping to change at line 21
Public header file for Windows NT Setup and Device Installer services Dll. Public header file for Windows NT Setup and Device Installer services Dll.
--*/ --*/
#ifndef _INC_SETUPAPI #ifndef _INC_SETUPAPI
#define _INC_SETUPAPI #define _INC_SETUPAPI
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#if defined (_MSC_VER) && (_MSC_VER >= 1200)
#pragma warning(push)
#pragma warning(disable:4201) /* nonstandard extension used : nameless struct/un
ion */
#endif
// //
// Define API decoration for direct importing of DLL references. // Define API decoration for direct importing of DLL references.
// //
#if !defined(_SETUPAPI_) #if !defined(_SETUPAPI_)
#define WINSETUPAPI DECLSPEC_IMPORT #define WINSETUPAPI DECLSPEC_IMPORT
#else #else
#define WINSETUPAPI #define WINSETUPAPI
#endif #endif
// //
// determine version of setupapi based on _WIN32_WINDOWS and _WIN32_WINNT // determine version of setupapi based on _WIN32_WINDOWS and _WIN32_WINNT
// //
// NT4 version of setupapi (0x0400) is earliest, and installed onto Win95 by I // NT4 version of setupapi (_WIN32_WINNT_NT4) is earliest, and installed onto
E. Win95 by IE.
// Win2k version of setupapi (0x0500) also shipped in WinME // Win2k version of setupapi (_WIN32_WINNT_WIN2K) also shipped in WinME
// we'll use "0x0410" to indicate version of setupapi shipped with Win98 // we'll use "0x0410" to indicate version of setupapi shipped with Win98
// //
#ifndef _SETUPAPI_VER #ifndef _SETUPAPI_VER
#if defined(_WIN32_WINNT) && (!defined(_WIN32_WINDOWS) || (_WIN32_WINNT < _WIN32 _WINDOWS)) #if defined(_WIN32_WINNT) && (!defined(_WIN32_WINDOWS) || (_WIN32_WINNT < _WIN32 _WINDOWS))
#define _SETUPAPI_VER _WIN32_WINNT // SetupAPI version follows Windows NT versi on #define _SETUPAPI_VER _WIN32_WINNT // SetupAPI version follows Windows NT versi on
#elif defined(_WIN32_WINDOWS) #elif defined(_WIN32_WINDOWS)
#if _WIN32_WINDOWS >= 0x0490 #if _WIN32_WINDOWS >= 0x0490
#define _SETUPAPI_VER 0x0500 // WinME uses same version of SetupAPI as Wi n2k #define _SETUPAPI_VER _WIN32_WINNT_WIN2K // WinME uses same version of Se tupAPI as Win2k
#elif _WIN32_WINDOWS >= 0x0410 #elif _WIN32_WINDOWS >= 0x0410
#define _SETUPAPI_VER 0x0410 // Indicates version of SetupAPI shipped wit h Win98 #define _SETUPAPI_VER 0x0410 // Indicates version of SetupAPI shipped wit h Win98
#else #else
#define _SETUPAPI_VER 0x0400 // Earliest SetupAPI version #define _SETUPAPI_VER _WIN32_WINNT_NT4 // Earliest SetupAPI version
#endif // _WIN32_WINDOWS #endif // _WIN32_WINDOWS
#else // _WIN32_WINNT/_WIN32_WINDOWS #else // _WIN32_WINNT/_WIN32_WINDOWS
#define _SETUPAPI_VER 0x0501 #define _SETUPAPI_VER _WIN32_WINNT_WINXP
#endif // _WIN32_WINNT/_WIN32_WINDOWS #endif // _WIN32_WINNT/_WIN32_WINDOWS
#endif // !_SETUPAPI_VER #endif // !_SETUPAPI_VER
#ifndef __LPGUID_DEFINED__ #ifndef __LPGUID_DEFINED__
#define __LPGUID_DEFINED__ #define __LPGUID_DEFINED__
typedef GUID *LPGUID; typedef GUID *LPGUID;
#endif #endif
// //
// Include spapidef.h for basic definitions and flags
//
#include <spapidef.h>
//
// Include commctrl.h for our use of HIMAGELIST and wizard support. // Include commctrl.h for our use of HIMAGELIST and wizard support.
// //
#include <commctrl.h> #include <commctrl.h>
//
// Include devpropdef.h for our use of DEVPROPERTYKEY and DEVPROPTYPE.
//
#include <devpropdef.h>
#ifdef _WIN64 #ifdef _WIN64
#include <pshpack8.h> // Assume 8-byte (64-bit) packing throughout #include <pshpack8.h> // Assume 8-byte (64-bit) packing throughout
#else #else
#include <pshpack1.h> // Assume byte packing throughout (32-bit processor) #include <pshpack1.h> // Assume byte packing throughout (32-bit processor)
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
skipping to change at line 189 skipping to change at line 203
DWORD MinorVersion; DWORD MinorVersion;
// //
// processor architecture to use (PROCESSOR_ARCHITECTURE_INTEL, // processor architecture to use (PROCESSOR_ARCHITECTURE_INTEL,
// PROCESSOR_ARCHITECTURE_AMD64, or PROCESSOR_ARCHITECTURE_IA64. // PROCESSOR_ARCHITECTURE_AMD64, or PROCESSOR_ARCHITECTURE_IA64.
// //
WORD ProcessorArchitecture; WORD ProcessorArchitecture;
WORD Reserved; // must be zero. WORD Reserved; // must be zero.
} SP_ALTPLATFORM_INFO_V1, *PSP_ALTPLATFORM_INFO_V1; } SP_ALTPLATFORM_INFO_V1, *PSP_ALTPLATFORM_INFO_V1;
#if USE_SP_ALTPLATFORM_INFO_V1 || (_SETUPAPI_VER < 0x0501) // use version 1 altp latform info data structure #if USE_SP_ALTPLATFORM_INFO_V1 || (_SETUPAPI_VER < _WIN32_WINNT_WINXP) // use ve rsion 1 altplatform info data structure
typedef SP_ALTPLATFORM_INFO_V1 SP_ALTPLATFORM_INFO; typedef SP_ALTPLATFORM_INFO_V1 SP_ALTPLATFORM_INFO;
typedef PSP_ALTPLATFORM_INFO_V1 PSP_ALTPLATFORM_INFO; typedef PSP_ALTPLATFORM_INFO_V1 PSP_ALTPLATFORM_INFO;
#else // use version 2 altplatform info data structure #else // use version 2 altplatform info data structure
typedef SP_ALTPLATFORM_INFO_V2 SP_ALTPLATFORM_INFO; typedef SP_ALTPLATFORM_INFO_V2 SP_ALTPLATFORM_INFO;
typedef PSP_ALTPLATFORM_INFO_V2 PSP_ALTPLATFORM_INFO; typedef PSP_ALTPLATFORM_INFO_V2 PSP_ALTPLATFORM_INFO;
// //
skipping to change at line 244 skipping to change at line 258
#define INF_STYLE_NONE 0x00000000 // unrecognized or non-existen t #define INF_STYLE_NONE 0x00000000 // unrecognized or non-existen t
#define INF_STYLE_OLDNT 0x00000001 // winnt 3.x #define INF_STYLE_OLDNT 0x00000001 // winnt 3.x
#define INF_STYLE_WIN4 0x00000002 // Win95 #define INF_STYLE_WIN4 0x00000002 // Win95
// //
// Additional InfStyle flags that may be specified when calling SetupOpenInfFile . // Additional InfStyle flags that may be specified when calling SetupOpenInfFile .
// //
// //
#define INF_STYLE_CACHE_ENABLE 0x00000010 // always cache INF, even outside of %windir%\Inf #define INF_STYLE_CACHE_ENABLE 0x00000010 // always cache INF, even outside of %windir%\Inf
#define INF_STYLE_CACHE_DISABLE 0x00000020 // delete cached INF information #define INF_STYLE_CACHE_DISABLE 0x00000020 // delete cached INF information
#if _SETUPAPI_VER >= 0x0502 #if _SETUPAPI_VER >= _WIN32_WINNT_WS03
#define INF_STYLE_CACHE_IGNORE 0x00000040 // ignore any cached INF information #define INF_STYLE_CACHE_IGNORE 0x00000040 // ignore any cached INF information
#endif #endif
// //
// Target directory specs. // Target directory specs.
// //
#define DIRID_ABSOLUTE -1 // real 32-bit -1 #define DIRID_ABSOLUTE -1 // real 32-bit -1
#define DIRID_ABSOLUTE_16BIT 0xffff // 16-bit -1 for compat w/setupx #define DIRID_ABSOLUTE_16BIT 0xffff // 16-bit -1 for compat w/setupx
#define DIRID_NULL 0 #define DIRID_NULL 0
#define DIRID_SRCPATH 1 #define DIRID_SRCPATH 1
skipping to change at line 296 skipping to change at line 310
// string substitution.) // string substitution.)
// //
#define DIRID_COMMON_STARTMENU 16406 // All Users\Start Menu #define DIRID_COMMON_STARTMENU 16406 // All Users\Start Menu
#define DIRID_COMMON_PROGRAMS 16407 // All Users\Start Menu\Programs #define DIRID_COMMON_PROGRAMS 16407 // All Users\Start Menu\Programs
#define DIRID_COMMON_STARTUP 16408 // All Users\Start Menu\Programs\St artup #define DIRID_COMMON_STARTUP 16408 // All Users\Start Menu\Programs\St artup
#define DIRID_COMMON_DESKTOPDIRECTORY 16409 // All Users\Desktop #define DIRID_COMMON_DESKTOPDIRECTORY 16409 // All Users\Desktop
#define DIRID_COMMON_FAVORITES 16415 // All Users\Favorites #define DIRID_COMMON_FAVORITES 16415 // All Users\Favorites
#define DIRID_COMMON_APPDATA 16419 // All Users\Application Data #define DIRID_COMMON_APPDATA 16419 // All Users\Application Data
#define DIRID_PROGRAM_FILES 16422 // Program Files #define DIRID_PROGRAM_FILES 16422 // Program Files
#define DIRID_SYSTEM_X86 16425 // system32 on RISC #define DIRID_SYSTEM_X86 16425 // system32 for WOW
#define DIRID_PROGRAM_FILES_X86 16426 // Program Files on RISC #define DIRID_PROGRAM_FILES_X86 16426 // Program Files for WOW
#define DIRID_PROGRAM_FILES_COMMON 16427 // Program Files\Common #define DIRID_PROGRAM_FILES_COMMON 16427 // Program Files\Common
#define DIRID_PROGRAM_FILES_COMMONX86 16428 // x86 Program Files\Common on RISC #define DIRID_PROGRAM_FILES_COMMONX86 16428 // x86 Program Files\Common for WOW
#define DIRID_COMMON_TEMPLATES 16429 // All Users\Templates #define DIRID_COMMON_TEMPLATES 16429 // All Users\Templates
#define DIRID_COMMON_DOCUMENTS 16430 // All Users\Documents #define DIRID_COMMON_DOCUMENTS 16430 // All Users\Documents
// //
// First user-definable dirid. See SetupSetDirectoryId(). // First user-definable dirid. See SetupSetDirectoryId().
// //
#define DIRID_USER 0x8000 #define DIRID_USER 0x8000
// //
skipping to change at line 372 skipping to change at line 386
#define SPFILENOTIFY_BACKUPERROR 0x00000016 #define SPFILENOTIFY_BACKUPERROR 0x00000016
#define SPFILENOTIFY_ENDBACKUP 0x00000017 #define SPFILENOTIFY_ENDBACKUP 0x00000017
// //
// Extended notification for SetupScanFileQueue(Flags=SPQ_SCAN_USE_CALLBACKEX) // Extended notification for SetupScanFileQueue(Flags=SPQ_SCAN_USE_CALLBACKEX)
// //
#define SPFILENOTIFY_QUEUESCAN_EX 0x00000018 #define SPFILENOTIFY_QUEUESCAN_EX 0x00000018
#define SPFILENOTIFY_STARTREGISTRATION 0x00000019 #define SPFILENOTIFY_STARTREGISTRATION 0x00000019
#define SPFILENOTIFY_ENDREGISTRATION 0x00000020 #define SPFILENOTIFY_ENDREGISTRATION 0x00000020
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Extended notification for SetupScanFileQueue(Flags=SPQ_SCAN_USE_CALLBACK_SIGN ERINFO) // Extended notification for SetupScanFileQueue(Flags=SPQ_SCAN_USE_CALLBACK_SIGN ERINFO)
// //
#define SPFILENOTIFY_QUEUESCAN_SIGNERINFO 0x00000040 #define SPFILENOTIFY_QUEUESCAN_SIGNERINFO 0x00000040
#endif #endif
// //
// Copy notification. These are bit flags that may be combined. // Copy notification. These are bit flags that may be combined.
skipping to change at line 412 skipping to change at line 426
// //
// Flags in inf copy sections // Flags in inf copy sections
// //
#define COPYFLG_WARN_IF_SKIP 0x00000001 // warn if user tries to ski p file #define COPYFLG_WARN_IF_SKIP 0x00000001 // warn if user tries to ski p file
#define COPYFLG_NOSKIP 0x00000002 // disallow skipping this fi le #define COPYFLG_NOSKIP 0x00000002 // disallow skipping this fi le
#define COPYFLG_NOVERSIONCHECK 0x00000004 // ignore versions and overw rite target #define COPYFLG_NOVERSIONCHECK 0x00000004 // ignore versions and overw rite target
#define COPYFLG_FORCE_FILE_IN_USE 0x00000008 // force file-in-use behavio r #define COPYFLG_FORCE_FILE_IN_USE 0x00000008 // force file-in-use behavio r
#define COPYFLG_NO_OVERWRITE 0x00000010 // do not copy if file exist s on target #define COPYFLG_NO_OVERWRITE 0x00000010 // do not copy if file exist s on target
#define COPYFLG_NO_VERSION_DIALOG 0x00000020 // do not copy if target is newer #define COPYFLG_NO_VERSION_DIALOG 0x00000020 // do not copy if target is newer
#define COPYFLG_OVERWRITE_OLDER_ONLY 0x00000040 // leave target alone if ver sion same as source #define COPYFLG_OVERWRITE_OLDER_ONLY 0x00000040 // leave target alone if ver sion same as source
#define COPYFLG_PROTECTED_WINDOWS_DRIVER_FILE 0x00000100 // a Windows driver
file to be
// protected as other Windows system files
#define COPYFLG_REPLACEONLY 0x00000400 // copy only if file exists on target #define COPYFLG_REPLACEONLY 0x00000400 // copy only if file exists on target
#define COPYFLG_NODECOMP 0x00000800 // don't attempt to decompre ss file; copy as-is #define COPYFLG_NODECOMP 0x00000800 // don't attempt to decompre ss file; copy as-is
#define COPYFLG_REPLACE_BOOT_FILE 0x00001000 // file must be present upon reboot (i.e., it's #define COPYFLG_REPLACE_BOOT_FILE 0x00001000 // file must be present upon reboot (i.e., it's
// needed by the loader); th is flag implies a reboot // needed by the loader); th is flag implies a reboot
#define COPYFLG_NOPRUNE 0x00002000 // never prune this file #define COPYFLG_NOPRUNE 0x00002000 // never prune this file
#define COPYFLG_IN_USE_TRY_RENAME 0x00004000 // If file in use, try to re name the target first
// //
// Flags in inf delete sections // Flags in inf delete sections
// New flags go in high word // New flags go in high word
// //
#define DELFLG_IN_USE 0x00000001 // queue in-use file for del ete #define DELFLG_IN_USE 0x00000001 // queue in-use file for del ete
#define DELFLG_IN_USE1 0x00010000 // high-word version of DELF LG_IN_USE #define DELFLG_IN_USE1 0x00010000 // high-word version of DELF LG_IN_USE
// //
// Source and file paths. Used when notifying queue callback // Source and file paths. Used when notifying queue callback
skipping to change at line 451 skipping to change at line 469
} FILEPATHS_W, *PFILEPATHS_W; } FILEPATHS_W, *PFILEPATHS_W;
#ifdef UNICODE #ifdef UNICODE
typedef FILEPATHS_W FILEPATHS; typedef FILEPATHS_W FILEPATHS;
typedef PFILEPATHS_W PFILEPATHS; typedef PFILEPATHS_W PFILEPATHS;
#else #else
typedef FILEPATHS_A FILEPATHS; typedef FILEPATHS_A FILEPATHS;
typedef PFILEPATHS_A PFILEPATHS; typedef PFILEPATHS_A PFILEPATHS;
#endif #endif
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
typedef struct _FILEPATHS_SIGNERINFO_A { typedef struct _FILEPATHS_SIGNERINFO_A {
PCSTR Target; PCSTR Target;
PCSTR Source; // not used for delete operations PCSTR Source; // not used for delete operations
UINT Win32Error; UINT Win32Error;
DWORD Flags; // such as SP_COPY_NOSKIP for copy errors DWORD Flags; // such as SP_COPY_NOSKIP for copy errors
PCSTR DigitalSigner; PCSTR DigitalSigner;
PCSTR Version; PCSTR Version;
PCSTR CatalogFile; PCSTR CatalogFile;
} FILEPATHS_SIGNERINFO_A, *PFILEPATHS_SIGNERINFO_A; } FILEPATHS_SIGNERINFO_A, *PFILEPATHS_SIGNERINFO_A;
skipping to change at line 481 skipping to change at line 499
} FILEPATHS_SIGNERINFO_W, *PFILEPATHS_SIGNERINFO_W; } FILEPATHS_SIGNERINFO_W, *PFILEPATHS_SIGNERINFO_W;
#ifdef UNICODE #ifdef UNICODE
typedef FILEPATHS_SIGNERINFO_W FILEPATHS_SIGNERINFO; typedef FILEPATHS_SIGNERINFO_W FILEPATHS_SIGNERINFO;
typedef PFILEPATHS_SIGNERINFO_W PFILEPATHS_SIGNERINFO; typedef PFILEPATHS_SIGNERINFO_W PFILEPATHS_SIGNERINFO;
#else #else
typedef FILEPATHS_SIGNERINFO_A FILEPATHS_SIGNERINFO; typedef FILEPATHS_SIGNERINFO_A FILEPATHS_SIGNERINFO;
typedef PFILEPATHS_SIGNERINFO_A PFILEPATHS_SIGNERINFO; typedef PFILEPATHS_SIGNERINFO_A PFILEPATHS_SIGNERINFO;
#endif #endif
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Structure used with SPFILENOTIFY_NEEDMEDIA // Structure used with SPFILENOTIFY_NEEDMEDIA
// //
typedef struct _SOURCE_MEDIA_A { typedef struct _SOURCE_MEDIA_A {
PCSTR Reserved; PCSTR Reserved;
PCSTR Tagfile; // may be NULL PCSTR Tagfile; // may be NULL
PCSTR Description; PCSTR Description;
// //
// Pathname part and filename part of source file // Pathname part and filename part of source file
skipping to change at line 816 skipping to change at line 834
#define DIF_INSTALLINTERFACES 0x00000020 #define DIF_INSTALLINTERFACES 0x00000020
#define DIF_DETECTCANCEL 0x00000021 #define DIF_DETECTCANCEL 0x00000021
#define DIF_REGISTER_COINSTALLERS 0x00000022 #define DIF_REGISTER_COINSTALLERS 0x00000022
#define DIF_ADDPROPERTYPAGE_ADVANCED 0x00000023 #define DIF_ADDPROPERTYPAGE_ADVANCED 0x00000023
#define DIF_ADDPROPERTYPAGE_BASIC 0x00000024 #define DIF_ADDPROPERTYPAGE_BASIC 0x00000024
#define DIF_RESERVED1 0x00000025 #define DIF_RESERVED1 0x00000025
#define DIF_TROUBLESHOOTER 0x00000026 #define DIF_TROUBLESHOOTER 0x00000026
#define DIF_POWERMESSAGEWAKE 0x00000027 #define DIF_POWERMESSAGEWAKE 0x00000027
#define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED 0x00000028 #define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED 0x00000028
#define DIF_UPDATEDRIVER_UI 0x00000029 #define DIF_UPDATEDRIVER_UI 0x00000029
#define DIF_FINISHINSTALL_ACTION 0x0000002A
#define DIF_RESERVED2 0x00000030 #define DIF_RESERVED2 0x00000030
// //
// Obsoleted DIF codes (do not use) // Obsoleted DIF codes (do not use)
// //
#define DIF_MOVEDEVICE 0x0000000E #define DIF_MOVEDEVICE 0x0000000E
typedef UINT DI_FUNCTION; // Function type for device installer typedef UINT DI_FUNCTION; // Function type for device installer
// //
skipping to change at line 946 skipping to change at line 965
#define DI_OVERRIDE_INFFLAGS 0x10000000L // Override INF flags #define DI_OVERRIDE_INFFLAGS 0x10000000L // Override INF flags
#define DI_PROPS_NOCHANGEUSAGE 0x20000000L // No Enable/Disable in Gene ral Props #define DI_PROPS_NOCHANGEUSAGE 0x20000000L // No Enable/Disable in Gene ral Props
#define DI_NOSELECTICONS 0x40000000L // No small icons in select device dialogs #define DI_NOSELECTICONS 0x40000000L // No small icons in select device dialogs
#define DI_NOWRITE_IDS 0x80000000L // Don't write HW & Compat I Ds on install #define DI_NOWRITE_IDS 0x80000000L // Don't write HW & Compat I Ds on install
// //
// SP_DEVINSTALL_PARAMS.FlagsEx values // SP_DEVINSTALL_PARAMS.FlagsEx values
// //
#define DI_FLAGSEX_USEOLDINFSEARCH 0x00000001L // Inf Search functions
should not use Index Search #define DI_FLAGSEX_RESERVED2 0x00000001L // DI_FLAGSEX_USEOLDINF
#define DI_FLAGSEX_RESERVED2 0x00000002L // DI_FLAGSEX_AUTOSELEC SEARCH is obsolete
TRANK0 is obsolete #define DI_FLAGSEX_RESERVED3 0x00000002L // DI_FLAGSEX_AUTOSELEC
TRANK0 is obsolete
#define DI_FLAGSEX_CI_FAILED 0x00000004L // Failed to Load/Call class installer #define DI_FLAGSEX_CI_FAILED 0x00000004L // Failed to Load/Call class installer
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN //
#define DI_FLAGSEX_FINISHINSTALL_ACTION 0x00000008L // Class/co-installer w
ants to get a DIF_FINISH_INSTALL action in client context.
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define DI_FLAGSEX_DIDINFOLIST 0x00000010L // Did the Class Info L ist #define DI_FLAGSEX_DIDINFOLIST 0x00000010L // Did the Class Info L ist
#define DI_FLAGSEX_DIDCOMPATINFO 0x00000020L // Did the Compat Info List #define DI_FLAGSEX_DIDCOMPATINFO 0x00000020L // Did the Compat Info List
#define DI_FLAGSEX_FILTERCLASSES 0x00000040L #define DI_FLAGSEX_FILTERCLASSES 0x00000040L
#define DI_FLAGSEX_SETFAILEDINSTALL 0x00000080L #define DI_FLAGSEX_SETFAILEDINSTALL 0x00000080L
#define DI_FLAGSEX_DEVICECHANGE 0x00000100L #define DI_FLAGSEX_DEVICECHANGE 0x00000100L
#define DI_FLAGSEX_ALWAYSWRITEIDS 0x00000200L #define DI_FLAGSEX_ALWAYSWRITEIDS 0x00000200L
#define DI_FLAGSEX_PROPCHANGE_PENDING 0x00000400L // One or more device p roperty sheets have had changes made #define DI_FLAGSEX_PROPCHANGE_PENDING 0x00000400L // One or more device p roperty sheets have had changes made
// to them, and need to have a DIF_PROPERTYCHANGE occur. // to them, and need to have a DIF_PROPERTYCHANGE occur.
#define DI_FLAGSEX_ALLOWEXCLUDEDDRVS 0x00000800L #define DI_FLAGSEX_ALLOWEXCLUDEDDRVS 0x00000800L
#define DI_FLAGSEX_NOUIONQUERYREMOVE 0x00001000L #define DI_FLAGSEX_NOUIONQUERYREMOVE 0x00001000L
#define DI_FLAGSEX_USECLASSFORCOMPAT 0x00002000L // Use the device's cla ss when building compat drv list. #define DI_FLAGSEX_USECLASSFORCOMPAT 0x00002000L // Use the device's cla ss when building compat drv list.
// (Ignored if DI_COMPA T_FROM_CLASS flag is specified.) // (Ignored if DI_COMPA T_FROM_CLASS flag is specified.)
#define DI_FLAGSEX_RESERVED3 0x00004000L
#define DI_FLAGSEX_RESERVED4 0x00004000L // DI_FLAGSEX_OLDINF_IN
_CLASSLIST is obsolete
#define DI_FLAGSEX_NO_DRVREG_MODIFY 0x00008000L // Don't run AddReg and DelReg for device's software (driver) key. #define DI_FLAGSEX_NO_DRVREG_MODIFY 0x00008000L // Don't run AddReg and DelReg for device's software (driver) key.
#define DI_FLAGSEX_IN_SYSTEM_SETUP 0x00010000L // Installation is occu rring during initial system setup. #define DI_FLAGSEX_IN_SYSTEM_SETUP 0x00010000L // Installation is occu rring during initial system setup.
#define DI_FLAGSEX_INET_DRIVER 0x00020000L // Driver came from Win dows Update #define DI_FLAGSEX_INET_DRIVER 0x00020000L // Driver came from Win dows Update
#define DI_FLAGSEX_APPENDDRIVERLIST 0x00040000L // Cause SetupDiBuildDr iverInfoList to append #define DI_FLAGSEX_APPENDDRIVERLIST 0x00040000L // Cause SetupDiBuildDr iverInfoList to append
// a new driver list to an existing list. // a new driver list to an existing list.
#define DI_FLAGSEX_PREINSTALLBACKUP 0x00080000L // backup all files req #define DI_FLAGSEX_PREINSTALLBACKUP 0x00080000L // not used
uired by old inf before install #define DI_FLAGSEX_BACKUPONREPLACE 0x00100000L // not used
#define DI_FLAGSEX_BACKUPONREPLACE 0x00100000L // backup files require
d by old inf as they are replaced
#define DI_FLAGSEX_DRIVERLIST_FROM_URL 0x00200000L // build driver list fr om INF(s) retrieved from URL specified #define DI_FLAGSEX_DRIVERLIST_FROM_URL 0x00200000L // build driver list fr om INF(s) retrieved from URL specified
// in SP_DEVINSTALL_PAR AMS.DriverPath (empty string means // in SP_DEVINSTALL_PAR AMS.DriverPath (empty string means
// Windows Update websi te) // Windows Update websi te)
#define DI_FLAGSEX_RESERVED1 0x00400000L #define DI_FLAGSEX_RESERVED1 0x00400000L
#define DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS 0x00800000L // Don't include old In ternet drivers when building #define DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS 0x00800000L // Don't include old In ternet drivers when building
// a driver list. // a driver list.
// Ignored on Windows V ista and later.
#define DI_FLAGSEX_POWERPAGE_ADDED 0x01000000L // class installer adde d their own power page #define DI_FLAGSEX_POWERPAGE_ADDED 0x01000000L // class installer adde d their own power page
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define DI_FLAGSEX_FILTERSIMILARDRIVERS 0x02000000L // only include similar drivers in class list #define DI_FLAGSEX_FILTERSIMILARDRIVERS 0x02000000L // only include similar drivers in class list
#define DI_FLAGSEX_INSTALLEDDRIVER 0x04000000L // only add the install ed driver to the class or compat #define DI_FLAGSEX_INSTALLEDDRIVER 0x04000000L // only add the install ed driver to the class or compat
// driver list. Used i n calls to SetupDiBuildDriverInfoList // driver list. Used i n calls to SetupDiBuildDriverInfoList
#define DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE 0x08000000L // Don't remove identic al driver nodes from the class list #define DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE 0x08000000L // Don't remove identic al driver nodes from the class list
#define DI_FLAGSEX_ALTPLATFORM_DRVSEARCH 0x10000000L // Build driver list ba sed on alternate platform information #define DI_FLAGSEX_ALTPLATFORM_DRVSEARCH 0x10000000L // Build driver list ba sed on alternate platform information
// specified in associa ted file queue // specified in associa ted file queue
#define DI_FLAGSEX_RESTART_DEVICE_ONLY 0x20000000L // only restart the dev ice drivers are being installed on as #define DI_FLAGSEX_RESTART_DEVICE_ONLY 0x20000000L // only restart the dev ice drivers are being installed on as
// opposed to restartin g all devices using those drivers. // opposed to restartin g all devices using those drivers.
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define DI_FLAGSEX_RECURSIVESEARCH 0x40000000L // Tell SetupDiBuildDri
verInfoList to do a recursive search
#define DI_FLAGSEX_SEARCH_PUBLISHED_INFS 0x80000000L // Tell SetupDiBuildDri
verInfoList to do a "published INF" search
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
// //
// Class installation parameters header. This must be the first field of any // Class installation parameters header. This must be the first field of any
// class install parameter structure. The InstallFunction field must be set to // class install parameter structure. The InstallFunction field must be set to
// the function code corresponding to the structure, and the cbSize field must // the function code corresponding to the structure, and the cbSize field must
// be set to the size of the header structure. E.g., // be set to the size of the header structure. E.g.,
// //
// SP_ENABLECLASS_PARAMS EnableClassParams; // SP_ENABLECLASS_PARAMS EnableClassParams;
// //
// EnableClassParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER); // EnableClassParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);
skipping to change at line 1405 skipping to change at line 1441
typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_V1; typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_V1;
typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2; typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2;
typedef PSP_DRVINFO_DATA_V2_W PSP_DRVINFO_DATA_V2; typedef PSP_DRVINFO_DATA_V2_W PSP_DRVINFO_DATA_V2;
#else #else
typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1; typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1;
typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_V1; typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_V1;
typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2; typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2;
typedef PSP_DRVINFO_DATA_V2_A PSP_DRVINFO_DATA_V2; typedef PSP_DRVINFO_DATA_V2_A PSP_DRVINFO_DATA_V2;
#endif #endif
#if USE_SP_DRVINFO_DATA_V1 || (_SETUPAPI_VER < 0x0500) // use version 1 driver info data structure #if USE_SP_DRVINFO_DATA_V1 || (_SETUPAPI_VER < _WIN32_WINNT_WIN2K) // use versi on 1 driver info data structure
typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A; typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A;
typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_A; typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_A;
typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W; typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W;
typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_W; typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_W;
typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA; typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA;
typedef PSP_DRVINFO_DATA_V1 PSP_DRVINFO_DATA; typedef PSP_DRVINFO_DATA_V1 PSP_DRVINFO_DATA;
#else // use version 2 driver info data structure #else // use version 2 driver info data structure
skipping to change at line 1487 skipping to change at line 1524
#define DNF_OLDDRIVER 0x00000002 // Driver node specifies old/current driver #define DNF_OLDDRIVER 0x00000002 // Driver node specifies old/current driver
#define DNF_EXCLUDEFROMLIST 0x00000004 // If set, this driver node will not be #define DNF_EXCLUDEFROMLIST 0x00000004 // If set, this driver node will not be
// displayed in any driver select di alogs. // displayed in any driver select di alogs.
#define DNF_NODRIVER 0x00000008 // if we want to install no driver #define DNF_NODRIVER 0x00000008 // if we want to install no driver
// (e.g no mouse drv) // (e.g no mouse drv)
#define DNF_LEGACYINF 0x00000010 // Driver node came from an old-styl e INF (obsolete) #define DNF_LEGACYINF 0x00000010 // Driver node came from an old-styl e INF (obsolete)
#define DNF_CLASS_DRIVER 0x00000020 // Driver node represents a class dr iver #define DNF_CLASS_DRIVER 0x00000020 // Driver node represents a class dr iver
#define DNF_COMPATIBLE_DRIVER 0x00000040 // Driver node represents a compatib le driver #define DNF_COMPATIBLE_DRIVER 0x00000040 // Driver node represents a compatib le driver
#define DNF_INET_DRIVER 0x00000080 // Driver comes from an internet sou rce #define DNF_INET_DRIVER 0x00000080 // Driver comes from an internet sou rce
#define DNF_UNUSED1 0x00000100 #define DNF_UNUSED1 0x00000100
#define DNF_INDEXED_DRIVER 0x00000200 // Driver is contained in the Window s Driver Index #define DNF_UNUSED2 0x00000200
#define DNF_OLD_INET_DRIVER 0x00000400 // Driver came from the Internet, bu t we don't currently #define DNF_OLD_INET_DRIVER 0x00000400 // Driver came from the Internet, bu t we don't currently
// have access to it's source files. Never attempt to // have access to it's source files. Never attempt to
// install a driver with this flag! // install a driver with this flag!
// Note used on Windows Vista and La ter.
#define DNF_BAD_DRIVER 0x00000800 // Driver node should not be used at all #define DNF_BAD_DRIVER 0x00000800 // Driver node should not be used at all
#define DNF_DUPPROVIDER 0x00001000 // Multiple drivers have the same pr ovider and desc #define DNF_DUPPROVIDER 0x00001000 // Multiple drivers have the same pr ovider and desc
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define DNF_INF_IS_SIGNED 0x00002000 // If file is digitally signed #define DNF_INF_IS_SIGNED 0x00002000 // If file is digitally signed
#define DNF_OEM_F6_INF 0x00004000 // INF specified from F6 during text #define DNF_OEM_F6_INF 0x00004000 // INF specified from F6 during te
mode setup. xtmode setup.
#define DNF_DUPDRIVERVER 0x00008000 // Multipe drivers have the same des #define DNF_DUPDRIVERVER 0x00008000 // Multipe drivers have the same d
c, provider, and DriverVer values esc, provider, and DriverVer values
#define DNF_BASIC_DRIVER 0x00010000 // Driver provides basic functionali #define DNF_BASIC_DRIVER 0x00010000 // Driver provides basic functiona
ty, but should lity, but should
// not be chosen if other signed dri // not be chosen if other signed d
vers exist. rivers exist.
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= 0x0502 #if _SETUPAPI_VER >= _WIN32_WINNT_WS03
#define DNF_AUTHENTICODE_SIGNED 0x00020000 // Inf file is signed by an Authenti #define DNF_AUTHENTICODE_SIGNED 0x00020000 // Inf file is signed by an Authen
code(tm) catalog. ticode(tm) catalog.
#endif // _SETUPAPI_VER >= 0x0502 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WS03
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define DNF_INSTALLEDDRIVER 0x00040000 // This driver node is currently i
nstalled on the device.
#define DNF_ALWAYSEXCLUDEFROMLIST 0x00080000 // If set, this driver is not even
displayed in
// alternative platform either.
#define DNF_INBOX_DRIVER 0x00100000 // This driver node came from an I
NF that shipped with Windows.
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define DNF_UNUSED_21 0x00200000
#define DNF_UNUSED_22 0x00400000
#define DNF_UNUSED_23 0x00800000
#define DNF_UNUSED_24 0x01000000
#define DNF_UNUSED_25 0x02000000
#define DNF_UNUSED_26 0x04000000
#define DNF_UNUSED_27 0x08000000
#define DNF_UNUSED_28 0x10000000
#define DNF_UNUSED_29 0x20000000
#define DNF_UNUSED_30 0x40000000
#define DNF_UNUSED_31 0x80000000
// //
// Rank values (the lower the Rank number, the better the Rank) // Rank values (the lower the Rank number, the better the Rank)
// //
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define DRIVER_HARDWAREID_RANK 0x00000FFF // Any rank less than or equal to
// this value is a gold
// HardwareID match
#define DRIVER_HARDWAREID_MASK 0x80000FFF // If you mask these bits off (AND)
// from the Rank and the result is 0
// then the Rank is a trusted Hardwa
reID
// match
#define DRIVER_UNTRUSTED_RANK 0x80000000 // Any rank with this bit set is an
// "untrusted" rank, meaning that
// the INF was unsigned.
#define DRIVER_W9X_SUSPECT_RANK 0xC0000000 // Any rank that is greater than
// or equal to this value, and lesse
r
// than or equal to 0xFFFF is suspec
ted
// to be a Win9x-only driver, becaus
e
// (a) it isn't signed, and (b) ther
e
// is no NT-specific decoration to
// explicitly indicate that the INF
// supports Windows NT/2000/XP
#else
#define DRIVER_HARDWAREID_RANK 0x00000FFF // Any rank less than or equal to #define DRIVER_HARDWAREID_RANK 0x00000FFF // Any rank less than or equal to
// this value is a trusted // this value is a trusted
// HardwareID match // HardwareID match
#define DRIVER_COMPATID_RANK 0x00003FFF // Any rank less than or equal to #define DRIVER_COMPATID_RANK 0x00003FFF // Any rank less than or equal to
// this (and greater than // this (and greater than
// DRIVER_HARDWAREID_RANK) is a // DRIVER_HARDWAREID_RANK) is a
// trusted CompatibleID match // trusted CompatibleID match
#define DRIVER_UNTRUSTED_RANK 0x00008000 // Any rank with this bit set is an #define DRIVER_UNTRUSTED_RANK 0x00008000 // Any rank with this bit set is an
skipping to change at line 1553 skipping to change at line 1634
// DRIVER_W9X_SUSPECT_RANK ) is a // DRIVER_W9X_SUSPECT_RANK ) is a
// hardware ID match suspe cted of being // hardware ID match suspe cted of being
// only for Windows 9x pla tforms. // only for Windows 9x pla tforms.
#define DRIVER_W9X_SUSPECT_COMPATID_RANK 0x0000FFFF // Any rank less than or e qual to #define DRIVER_W9X_SUSPECT_COMPATID_RANK 0x0000FFFF // Any rank less than or e qual to
// this (and greater than // this (and greater than
// DRIVER_W9X_SUSPECT_HARD WAREID_RANK) // DRIVER_W9X_SUSPECT_HARD WAREID_RANK)
// is a compatible ID matc h suspected // is a compatible ID matc h suspected
// of being only for Windo ws 9x // of being only for Windo ws 9x
// platforms. // platforms.
#endif // _SETUPAPI_VER < _WIN32_WINNT_LONGHORN
// //
// Setup callback routine for comparing detection signatures // Setup callback routine for comparing detection signatures
// //
typedef DWORD (CALLBACK* PSP_DETSIG_CMPPROC)( typedef DWORD (CALLBACK* PSP_DETSIG_CMPPROC)(
IN HDEVINFO DeviceInfoSet, IN HDEVINFO DeviceInfoSet,
IN PSP_DEVINFO_DATA NewDeviceData, IN PSP_DEVINFO_DATA NewDeviceData,
IN PSP_DEVINFO_DATA ExistingDeviceData, IN PSP_DEVINFO_DATA ExistingDeviceData,
IN PVOID CompareContext OPTIONAL IN PVOID CompareContext OPTIONAL
); );
skipping to change at line 1647 skipping to change at line 1729
typedef PSP_BACKUP_QUEUE_PARAMS_V1_W PSP_BACKUP_QUEUE_PARAMS_V1; typedef PSP_BACKUP_QUEUE_PARAMS_V1_W PSP_BACKUP_QUEUE_PARAMS_V1;
typedef SP_BACKUP_QUEUE_PARAMS_V2_W SP_BACKUP_QUEUE_PARAMS_V2; typedef SP_BACKUP_QUEUE_PARAMS_V2_W SP_BACKUP_QUEUE_PARAMS_V2;
typedef PSP_BACKUP_QUEUE_PARAMS_V2_W PSP_BACKUP_QUEUE_PARAMS_V2; typedef PSP_BACKUP_QUEUE_PARAMS_V2_W PSP_BACKUP_QUEUE_PARAMS_V2;
#else #else
typedef SP_BACKUP_QUEUE_PARAMS_V1_A SP_BACKUP_QUEUE_PARAMS_V1; typedef SP_BACKUP_QUEUE_PARAMS_V1_A SP_BACKUP_QUEUE_PARAMS_V1;
typedef PSP_BACKUP_QUEUE_PARAMS_V1_A PSP_BACKUP_QUEUE_PARAMS_V1; typedef PSP_BACKUP_QUEUE_PARAMS_V1_A PSP_BACKUP_QUEUE_PARAMS_V1;
typedef SP_BACKUP_QUEUE_PARAMS_V2_A SP_BACKUP_QUEUE_PARAMS_V2; typedef SP_BACKUP_QUEUE_PARAMS_V2_A SP_BACKUP_QUEUE_PARAMS_V2;
typedef PSP_BACKUP_QUEUE_PARAMS_V2_A PSP_BACKUP_QUEUE_PARAMS_V2; typedef PSP_BACKUP_QUEUE_PARAMS_V2_A PSP_BACKUP_QUEUE_PARAMS_V2;
#endif #endif
#if USE_SP_BACKUP_QUEUE_PARAMS_V1 || (_SETUPAPI_VER < 0x0501) // use version 1 driver info data structure #if USE_SP_BACKUP_QUEUE_PARAMS_V1 || (_SETUPAPI_VER < _WIN32_WINNT_WINXP) // us e version 1 driver info data structure
typedef SP_BACKUP_QUEUE_PARAMS_V1_A SP_BACKUP_QUEUE_PARAMS_A; typedef SP_BACKUP_QUEUE_PARAMS_V1_A SP_BACKUP_QUEUE_PARAMS_A;
typedef PSP_BACKUP_QUEUE_PARAMS_V1_A PSP_BACKUP_QUEUE_PARAMS_A; typedef PSP_BACKUP_QUEUE_PARAMS_V1_A PSP_BACKUP_QUEUE_PARAMS_A;
typedef SP_BACKUP_QUEUE_PARAMS_V1_W SP_BACKUP_QUEUE_PARAMS_W; typedef SP_BACKUP_QUEUE_PARAMS_V1_W SP_BACKUP_QUEUE_PARAMS_W;
typedef PSP_BACKUP_QUEUE_PARAMS_V1_W PSP_BACKUP_QUEUE_PARAMS_W; typedef PSP_BACKUP_QUEUE_PARAMS_V1_W PSP_BACKUP_QUEUE_PARAMS_W;
typedef SP_BACKUP_QUEUE_PARAMS_V1 SP_BACKUP_QUEUE_PARAMS; typedef SP_BACKUP_QUEUE_PARAMS_V1 SP_BACKUP_QUEUE_PARAMS;
typedef PSP_BACKUP_QUEUE_PARAMS_V1 PSP_BACKUP_QUEUE_PARAMS; typedef PSP_BACKUP_QUEUE_PARAMS_V1 PSP_BACKUP_QUEUE_PARAMS;
#else // use version 2 driver info data structure #else // use version 2 driver info data structure
skipping to change at line 1741 skipping to change at line 1823
#define ERROR_NON_WINDOWS_NT_DRIVER (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x22D) #define ERROR_NON_WINDOWS_NT_DRIVER (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x22D)
#define ERROR_NON_WINDOWS_DRIVER (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x22E) #define ERROR_NON_WINDOWS_DRIVER (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x22E)
#define ERROR_NO_CATALOG_FOR_OEM_INF (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x22F) #define ERROR_NO_CATALOG_FOR_OEM_INF (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x22F)
#define ERROR_DEVINSTALL_QUEUE_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x230) #define ERROR_DEVINSTALL_QUEUE_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x230)
#define ERROR_NOT_DISABLEABLE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x231) #define ERROR_NOT_DISABLEABLE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x231)
#define ERROR_CANT_REMOVE_DEVINST (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x232) #define ERROR_CANT_REMOVE_DEVINST (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x232)
#define ERROR_INVALID_TARGET (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x233) #define ERROR_INVALID_TARGET (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x233)
#define ERROR_DRIVER_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x234) #define ERROR_DRIVER_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x234)
#define ERROR_IN_WOW64 (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x235) #define ERROR_IN_WOW64 (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x235)
#define ERROR_SET_SYSTEM_RESTORE_POINT (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x236) #define ERROR_SET_SYSTEM_RESTORE_POINT (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x236)
#define ERROR_INCORRECTLY_COPIED_INF (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x237)
#define ERROR_SCE_DISABLED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x238) #define ERROR_SCE_DISABLED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x238)
#define ERROR_UNKNOWN_EXCEPTION (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x239) #define ERROR_UNKNOWN_EXCEPTION (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x239)
#define ERROR_PNP_REGISTRY_ERROR (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23A) #define ERROR_PNP_REGISTRY_ERROR (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23A)
#define ERROR_REMOTE_REQUEST_UNSUPPORTED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23B) #define ERROR_REMOTE_REQUEST_UNSUPPORTED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23B)
#define ERROR_NOT_AN_INSTALLED_OEM_INF (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23C) #define ERROR_NOT_AN_INSTALLED_OEM_INF (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23C)
#define ERROR_INF_IN_USE_BY_DEVICES (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23D) #define ERROR_INF_IN_USE_BY_DEVICES (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23D)
#define ERROR_DI_FUNCTION_OBSOLETE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23E) #define ERROR_DI_FUNCTION_OBSOLETE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23E)
#define ERROR_NO_AUTHENTICODE_CATALOG (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23F) #define ERROR_NO_AUTHENTICODE_CATALOG (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x23F)
#define ERROR_AUTHENTICODE_DISALLOWED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x240) #define ERROR_AUTHENTICODE_DISALLOWED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x240)
#define ERROR_AUTHENTICODE_TRUSTED_PUBLISHER (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x241) #define ERROR_AUTHENTICODE_TRUSTED_PUBLISHER (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x241)
#define ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x242) #define ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x242)
#define ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x243) #define ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x243)
#define ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x244) #define ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x244)
#define ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x245) #define ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE (APPLICATION_ERROR_MASK|ERROR_S EVERITY_ERROR|0x245)
#define ERROR_DEVICE_INSTALLER_NOT_READY (APPLICATION_ERROR_MASK|ERROR_S
EVERITY_ERROR|0x246)
#define ERROR_DRIVER_STORE_ADD_FAILED (APPLICATION_ERROR_MASK|ERROR_S
EVERITY_ERROR|0x247)
#define ERROR_DEVICE_INSTALL_BLOCKED (APPLICATION_ERROR_MASK|ERROR_S
EVERITY_ERROR|0x248)
#define ERROR_DRIVER_INSTALL_BLOCKED (APPLICATION_ERROR_MASK|ERROR_S
EVERITY_ERROR|0x249)
#define ERROR_WRONG_INF_TYPE (APPLICATION_ERROR_MASK|ERROR_S
EVERITY_ERROR|0x24A)
#define ERROR_FILE_HASH_NOT_IN_CATALOG (APPLICATION_ERROR_MASK|ERROR_S
EVERITY_ERROR|0x24B)
#define ERROR_DRIVER_STORE_DELETE_FAILED (APPLICATION_ERROR_MASK|ERROR_S
EVERITY_ERROR|0x24C)
// //
// Setupapi exception codes // Setupapi exception codes
// //
#define ERROR_UNRECOVERABLE_STACK_OVERFLOW (APPLICATION_ERROR_MASK|ERROR_SEVERIT Y_ERROR|0x300) #define ERROR_UNRECOVERABLE_STACK_OVERFLOW (APPLICATION_ERROR_MASK|ERROR_SEVERIT Y_ERROR|0x300)
#define EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW ERROR_UNRECOVERABLE_STACK_O VERFLOW #define EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW ERROR_UNRECOVERABLE_STACK_O VERFLOW
// //
// Backward compatibility--do not use. // Backward compatibility--do not use.
// //
skipping to change at line 1897 skipping to change at line 1986
__in DWORD ReturnBufferSize, __in DWORD ReturnBufferSize,
__out_opt PDWORD RequiredSize __out_opt PDWORD RequiredSize
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupQueryInfVersionInformation SetupQueryInfVersionInformationW #define SetupQueryInfVersionInformation SetupQueryInfVersionInformationW
#else #else
#define SetupQueryInfVersionInformation SetupQueryInfVersionInformationA #define SetupQueryInfVersionInformation SetupQueryInfVersionInformationA
#endif #endif
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
WINSETUPAPI
BOOL
WINAPI
SetupGetInfDriverStoreLocationA(
__in PCSTR FileName,
__in_opt PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
__in_opt PCSTR LocaleName,
__out_ecount(ReturnBufferSize) PSTR ReturnBuffer,
__in DWORD ReturnBufferSize,
__out_opt PDWORD RequiredSize
);
WINSETUPAPI
BOOL
WINAPI
SetupGetInfDriverStoreLocationW(
__in PCWSTR FileName,
__in_opt PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
__in_opt PCWSTR LocaleName,
__out_ecount(ReturnBufferSize) PWSTR ReturnBuffer,
__in DWORD ReturnBufferSize,
__out_opt PDWORD RequiredSize
);
#ifdef UNICODE
#define SetupGetInfDriverStoreLocation SetupGetInfDriverStoreLocationW
#else
#define SetupGetInfDriverStoreLocation SetupGetInfDriverStoreLocationA
#endif
WINSETUPAPI
BOOL
WINAPI
SetupGetInfPublishedNameA(
__in PCSTR DriverStoreLocation,
__out_ecount(ReturnBufferSize) PSTR ReturnBuffer,
__in DWORD ReturnBufferSize,
__out_opt PDWORD RequiredSize
);
WINSETUPAPI
BOOL
WINAPI
SetupGetInfPublishedNameW(
__in PCWSTR DriverStoreLocation,
__out_ecount(ReturnBufferSize) PWSTR ReturnBuffer,
__in DWORD ReturnBufferSize,
__out_opt PDWORD RequiredSize
);
#ifdef UNICODE
#define SetupGetInfPublishedName SetupGetInfPublishedNameW
#else
#define SetupGetInfPublishedName SetupGetInfPublishedNameA
#endif
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupGetInfFileListA( SetupGetInfFileListA(
__in_opt PCSTR DirectoryPath, __in_opt PCSTR DirectoryPath,
__in DWORD InfStyle, __in DWORD InfStyle,
__out_ecount_opt(ReturnBufferSize) PSTR ReturnBuffer, __out_ecount_opt(ReturnBufferSize) PSTR ReturnBuffer,
__in DWORD ReturnBufferSize, __in DWORD ReturnBufferSize,
__out_opt PDWORD RequiredSize __out_opt PDWORD RequiredSize
); );
skipping to change at line 2246 skipping to change at line 2395
__out PDWORD TargetFileSize, __out PDWORD TargetFileSize,
__out PUINT CompressionType __out PUINT CompressionType
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupGetFileCompressionInfo SetupGetFileCompressionInfoW #define SetupGetFileCompressionInfo SetupGetFileCompressionInfoW
#else #else
#define SetupGetFileCompressionInfo SetupGetFileCompressionInfoA #define SetupGetFileCompressionInfo SetupGetFileCompressionInfoA
#endif #endif
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// SetupGetFileCompressionInfoEx is the preferred API over // SetupGetFileCompressionInfoEx is the preferred API over
// SetupGetFileCompressionInfo. It follows the normal // SetupGetFileCompressionInfo. It follows the normal
// conventions of returning BOOL and writing to user-supplied // conventions of returning BOOL and writing to user-supplied
// buffer. // buffer.
// //
WINSETUPAPI WINSETUPAPI
BOOL BOOL
skipping to change at line 2287 skipping to change at line 2436
__out PDWORD TargetFileSize, __out PDWORD TargetFileSize,
__out PUINT CompressionType __out PUINT CompressionType
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupGetFileCompressionInfoEx SetupGetFileCompressionInfoExW #define SetupGetFileCompressionInfoEx SetupGetFileCompressionInfoExW
#else #else
#define SetupGetFileCompressionInfoEx SetupGetFileCompressionInfoExA #define SetupGetFileCompressionInfoEx SetupGetFileCompressionInfoExA
#endif #endif
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Compression types // Compression types
// //
#define FILE_COMPRESSION_NONE 0 #define FILE_COMPRESSION_NONE 0
#define FILE_COMPRESSION_WINLZA 1 #define FILE_COMPRESSION_WINLZA 1
#define FILE_COMPRESSION_MSZIP 2 #define FILE_COMPRESSION_MSZIP 2
#define FILE_COMPRESSION_NTCAB 3 #define FILE_COMPRESSION_NTCAB 3
WINSETUPAPI WINSETUPAPI
skipping to change at line 2725 skipping to change at line 2874
// //
#define IDF_NOBROWSE 0x00000001 #define IDF_NOBROWSE 0x00000001
#define IDF_NOSKIP 0x00000002 #define IDF_NOSKIP 0x00000002
#define IDF_NODETAILS 0x00000004 #define IDF_NODETAILS 0x00000004
#define IDF_NOCOMPRESSED 0x00000008 #define IDF_NOCOMPRESSED 0x00000008
#define IDF_CHECKFIRST 0x00000100 #define IDF_CHECKFIRST 0x00000100
#define IDF_NOBEEP 0x00000200 #define IDF_NOBEEP 0x00000200
#define IDF_NOFOREGROUND 0x00000400 #define IDF_NOFOREGROUND 0x00000400
#define IDF_WARNIFSKIP 0x00000800 #define IDF_WARNIFSKIP 0x00000800
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define IDF_NOREMOVABLEMEDIAPROMPT 0x00001000 #define IDF_NOREMOVABLEMEDIAPROMPT 0x00001000
#define IDF_USEDISKNAMEASPROMPT 0x00002000 #define IDF_USEDISKNAMEASPROMPT 0x00002000
#define IDF_OEMDISK 0x80000000 #define IDF_OEMDISK 0x80000000
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Return values for SetupPromptForDisk, SetupCopyError, // Return values for SetupPromptForDisk, SetupCopyError,
// SetupRenameError, SetupDeleteError, SetupBackupError // SetupRenameError, SetupDeleteError, SetupBackupError
// //
#define DPROMPT_SUCCESS 0 #define DPROMPT_SUCCESS 0
#define DPROMPT_CANCEL 1 #define DPROMPT_CANCEL 1
#define DPROMPT_SKIPFILE 2 #define DPROMPT_SKIPFILE 2
#define DPROMPT_BUFFERTOOSMALL 3 #define DPROMPT_BUFFERTOOSMALL 3
#define DPROMPT_OUTOFMEMORY 4 #define DPROMPT_OUTOFMEMORY 4
skipping to change at line 2841 skipping to change at line 2990
// //
// InfoDesired values for SetupGetSourceInfo // InfoDesired values for SetupGetSourceInfo
// //
#define SRCINFO_PATH 1 #define SRCINFO_PATH 1
#define SRCINFO_TAGFILE 2 #define SRCINFO_TAGFILE 2
#define SRCINFO_DESCRIPTION 3 #define SRCINFO_DESCRIPTION 3
#define SRCINFO_FLAGS 4 #define SRCINFO_FLAGS 4
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// SRC_FLAGS allow special treatment of source // SRC_FLAGS allow special treatment of source
// lower 4 bits are reserved for OS use // lower 4 bits are reserved for OS use
// the flags may determine what other parameters exist // the flags may determine what other parameters exist
// //
#define SRCINFO_TAGFILE2 5 // alternate tagfile, when SRCINFO_TAGFILE is a cabfile #define SRCINFO_TAGFILE2 5 // alternate tagfile, when SRCINFO_TAGFILE is a cabfile
#define SRC_FLAGS_CABFILE (0x0010) // if set, treat SRCINFO_TAGFILE as a c abfile and specify alternate tagfile #define SRC_FLAGS_CABFILE (0x0010) // if set, treat SRCINFO_TAGFILE as a c abfile and specify alternate tagfile
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupInstallFileA( SetupInstallFileA(
__in_opt HINF InfHandle, __in_opt HINF InfHandle,
__in_opt PINFCONTEXT InfContext, __in_opt PINFCONTEXT InfContext,
__in_opt PCSTR SourceFile, __in_opt PCSTR SourceFile,
__in_opt PCSTR SourcePathRoot, __in_opt PCSTR SourcePathRoot,
__in_opt PCSTR DestinationName, __in_opt PCSTR DestinationName,
skipping to change at line 2944 skipping to change at line 3093
#define SP_COPY_SOURCEPATH_ABSOLUTE 0x0000080 // SourcePathRoot is the full pa th #define SP_COPY_SOURCEPATH_ABSOLUTE 0x0000080 // SourcePathRoot is the full pa th
#define SP_COPY_IN_USE_NEEDS_REBOOT 0x0000100 // System needs reboot if file i n use #define SP_COPY_IN_USE_NEEDS_REBOOT 0x0000100 // System needs reboot if file i n use
#define SP_COPY_FORCE_IN_USE 0x0000200 // Force target-in-use behavior #define SP_COPY_FORCE_IN_USE 0x0000200 // Force target-in-use behavior
#define SP_COPY_NOSKIP 0x0000400 // Skip is disallowed for this f ile or section #define SP_COPY_NOSKIP 0x0000400 // Skip is disallowed for this f ile or section
#define SP_FLAG_CABINETCONTINUATION 0x0000800 // Used with need media notifica tion #define SP_FLAG_CABINETCONTINUATION 0x0000800 // Used with need media notifica tion
#define SP_COPY_FORCE_NOOVERWRITE 0x0001000 // like NOOVERWRITE but no callb ack nofitication #define SP_COPY_FORCE_NOOVERWRITE 0x0001000 // like NOOVERWRITE but no callb ack nofitication
#define SP_COPY_FORCE_NEWER 0x0002000 // like NEWER but no callback no fitication #define SP_COPY_FORCE_NEWER 0x0002000 // like NEWER but no callback no fitication
#define SP_COPY_WARNIFSKIP 0x0004000 // system critical file: warn if user tries to skip #define SP_COPY_WARNIFSKIP 0x0004000 // system critical file: warn if user tries to skip
#define SP_COPY_NOBROWSE 0x0008000 // Browsing is disallowed for th is file or section #define SP_COPY_NOBROWSE 0x0008000 // Browsing is disallowed for th is file or section
#define SP_COPY_NEWER_ONLY 0x0010000 // copy only if source file newe r than target #define SP_COPY_NEWER_ONLY 0x0010000 // copy only if source file newe r than target
#define SP_COPY_SOURCE_SIS_MASTER 0x0020000 // source is single-instance sto re master #define SP_COPY_RESERVED 0x0020000 // was: SP_COPY_SOURCE_SIS_MASTE R (deprecated)
#define SP_COPY_OEMINF_CATALOG_ONLY 0x0040000 // (SetupCopyOEMInf only) don't copy INF--just catalog #define SP_COPY_OEMINF_CATALOG_ONLY 0x0040000 // (SetupCopyOEMInf only) don't copy INF--just catalog
#define SP_COPY_REPLACE_BOOT_FILE 0x0080000 // file must be present upon reb oot (i.e., it's #define SP_COPY_REPLACE_BOOT_FILE 0x0080000 // file must be present upon reb oot (i.e., it's
// needed by the loader); this f lag implies a reboot // needed by the loader); this f lag implies a reboot
#define SP_COPY_NOPRUNE 0x0100000 // never prune this file #define SP_COPY_NOPRUNE 0x0100000 // never prune this file
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define SP_COPY_OEM_F6_INF 0x0200000 // Used when calling SetupCopyOe mInf #define SP_COPY_OEM_F6_INF 0x0200000 // Used when calling SetupCopyOe mInf
#endif //_SETUPAPI_VER >= 0x0501 #endif //_SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define SP_COPY_ALREADYDECOMP 0x0400000 // similar to SP_COPY_NODECOMP
#endif //_SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define SP_COPY_WINDOWS_SIGNED 0x1000000 // BuildLab or WinSE signed
#define SP_COPY_PNPLOCKED 0x2000000 // Used with the signature flag
#define SP_COPY_IN_USE_TRY_RENAME 0x4000000 // If file in use, try to rename
the target first
#define SP_COPY_INBOX_INF 0x8000000 // Referred by CopyFiles of inbo
x inf
#endif //_SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Flags passed to Backup notification // Flags passed to Backup notification
// //
#define SP_BACKUP_BACKUPPASS 0x00000001 // file backed up during backup pass #define SP_BACKUP_BACKUPPASS 0x00000001 // file backed up during backup pass
#define SP_BACKUP_DEMANDPASS 0x00000002 // file backed up on demand #define SP_BACKUP_DEMANDPASS 0x00000002 // file backed up on demand
#define SP_BACKUP_SPECIAL 0x00000004 // if set, special type of backu p #define SP_BACKUP_SPECIAL 0x00000004 // if set, special type of backu p
#define SP_BACKUP_BOOTFILE 0x00000008 // file marked with COPYFLG_REPL ACE_BOOT_FILE #define SP_BACKUP_BOOTFILE 0x00000008 // file marked with COPYFLG_REPL ACE_BOOT_FILE
#endif //_SETUPAPI_VER >= 0x0501 #endif //_SETUPAPI_VER >= _WIN32_WINNT_WINXP
WINSETUPAPI WINSETUPAPI
HSPFILEQ HSPFILEQ
WINAPI WINAPI
SetupOpenFileQueue( SetupOpenFileQueue(
VOID VOID
); );
WINSETUPAPI WINSETUPAPI
BOOL BOOL
skipping to change at line 3088 skipping to change at line 3252
#else #else
#define SetupQueueCopyIndirect SetupQueueCopyIndirectA #define SetupQueueCopyIndirect SetupQueueCopyIndirectA
#endif #endif
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupQueueDefaultCopyA( SetupQueueDefaultCopyA(
__in HSPFILEQ QueueHandle, __in HSPFILEQ QueueHandle,
__in HINF InfHandle, __in HINF InfHandle,
__in PCSTR SourceRootPath, __in_opt PCSTR SourceRootPath,
__in PCSTR SourceFilename, __in PCSTR SourceFilename,
__in PCSTR TargetFilename, __in_opt PCSTR TargetFilename,
__in DWORD CopyStyle __in DWORD CopyStyle
); );
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupQueueDefaultCopyW( SetupQueueDefaultCopyW(
__in HSPFILEQ QueueHandle, __in HSPFILEQ QueueHandle,
__in HINF InfHandle, __in HINF InfHandle,
__in PCWSTR SourceRootPath, __in_opt PCWSTR SourceRootPath,
__in PCWSTR SourceFilename, __in PCWSTR SourceFilename,
__in PCWSTR TargetFilename, __in_opt PCWSTR TargetFilename,
__in DWORD CopyStyle __in DWORD CopyStyle
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupQueueDefaultCopy SetupQueueDefaultCopyW #define SetupQueueDefaultCopy SetupQueueDefaultCopyW
#else #else
#define SetupQueueDefaultCopy SetupQueueDefaultCopyA #define SetupQueueDefaultCopy SetupQueueDefaultCopyA
#endif #endif
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupQueueCopySectionA( SetupQueueCopySectionA(
__in HSPFILEQ QueueHandle, __in HSPFILEQ QueueHandle,
__in PCSTR SourceRootPath, __in_opt PCSTR SourceRootPath,
__in HINF InfHandle, __in HINF InfHandle,
__in_opt HINF ListInfHandle, __in_opt HINF ListInfHandle,
__in PCSTR Section, __in PCSTR Section,
__in DWORD CopyStyle __in DWORD CopyStyle
); );
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupQueueCopySectionW( SetupQueueCopySectionW(
__in HSPFILEQ QueueHandle, __in HSPFILEQ QueueHandle,
__in PCWSTR SourceRootPath, __in_opt PCWSTR SourceRootPath,
__in HINF InfHandle, __in HINF InfHandle,
__in_opt HINF ListInfHandle, __in_opt HINF ListInfHandle,
__in PCWSTR Section, __in PCWSTR Section,
__in DWORD CopyStyle __in DWORD CopyStyle
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupQueueCopySection SetupQueueCopySectionW #define SetupQueueCopySection SetupQueueCopySectionW
#else #else
#define SetupQueueCopySection SetupQueueCopySectionA #define SetupQueueCopySection SetupQueueCopySectionA
skipping to change at line 3312 skipping to change at line 3476
// //
// Define flags for SetupScanFileQueue. // Define flags for SetupScanFileQueue.
// //
#define SPQ_SCAN_FILE_PRESENCE 0x00000001 #define SPQ_SCAN_FILE_PRESENCE 0x00000001
#define SPQ_SCAN_FILE_VALIDITY 0x00000002 #define SPQ_SCAN_FILE_VALIDITY 0x00000002
#define SPQ_SCAN_USE_CALLBACK 0x00000004 #define SPQ_SCAN_USE_CALLBACK 0x00000004
#define SPQ_SCAN_USE_CALLBACKEX 0x00000008 #define SPQ_SCAN_USE_CALLBACKEX 0x00000008
#define SPQ_SCAN_INFORM_USER 0x00000010 #define SPQ_SCAN_INFORM_USER 0x00000010
#define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020 #define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define SPQ_SCAN_USE_CALLBACK_SIGNERINFO 0x00000040 #define SPQ_SCAN_USE_CALLBACK_SIGNERINFO 0x00000040
#define SPQ_SCAN_PRUNE_DELREN 0x00000080 // remote Delete/Rena me queue #define SPQ_SCAN_PRUNE_DELREN 0x00000080 // remote Delete/Rena me queue
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define SPQ_SCAN_FILE_PRESENCE_WITHOUT_SOURCE 0x00000100
#define SPQ_SCAN_FILE_COMPARISON 0x00000200
#define SPQ_SCAN_ACTIVATE_DRP 0x00000400
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
// //
// Define flags used with Param2 for SPFILENOTIFY_QUEUESCAN // Define flags used with Param2 for SPFILENOTIFY_QUEUESCAN
// //
#define SPQ_DELAYED_COPY 0x00000001 // file was in use; registered for delayed copy #define SPQ_DELAYED_COPY 0x00000001 // file was in use; registered for delayed copy
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupGetFileQueueCount( SetupGetFileQueueCount(
__in HSPFILEQ FileQueue, __in HSPFILEQ FileQueue,
__in UINT SubQueueFileOp, __in UINT SubQueueFileOp,
__out PUINT NumOperations __out PUINT NumOperations
); );
skipping to change at line 3368 skipping to change at line 3540
#define SPQ_FLAG_ABORT_IF_UNSIGNED 0x00000002 // If set, SetupCommitFileQueue w ill #define SPQ_FLAG_ABORT_IF_UNSIGNED 0x00000002 // If set, SetupCommitFileQueue w ill
// fail with ERROR_SET_SYSTEM_RES TORE_POINT // fail with ERROR_SET_SYSTEM_RES TORE_POINT
// if the user elects to proceed with an // if the user elects to proceed with an
// unsigned queue committal. Thi s allows // unsigned queue committal. Thi s allows
// the caller to set a system res tore point, // the caller to set a system res tore point,
// then re-commit the file queue. // then re-commit the file queue.
#define SPQ_FLAG_FILES_MODIFIED 0x00000004 // If set, at least one file was #define SPQ_FLAG_FILES_MODIFIED 0x00000004 // If set, at least one file was
// replaced by a different versio n // replaced by a different versio n
#define SPQ_FLAG_VALID 0x00000007 // mask of valid flags (can be pa #define SPQ_FLAG_DO_SHUFFLEMOVE 0x00000008 // If set then always do a shuffl
ssed as FlagMask) e move. A shuffle
// move will first try to copy th
e source over the
// destination file, but if the d
estination file is
// in use it will rename the dest
ination file to a
// temp name and queue the temp n
ame for deletion.
// It will then be free to copy t
he source to the
// destination name. It is consi
dered an error if
// the destination file can't be
renamed for some
// reason.
#endif // _SETUPAPI_VER >= 0x0501 #define SPQ_FLAG_VALID 0x0000000F // mask of valid flags (can be pa
ssed as FlagMask)
#endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Define OEM Source Type values for use in SetupCopyOEMInf. // Define OEM Source Type values for use in SetupCopyOEMInf.
// //
#define SPOST_NONE 0 #define SPOST_NONE 0
#define SPOST_PATH 1 #define SPOST_PATH 1
#define SPOST_URL 2 #define SPOST_URL 2
#define SPOST_MAX 3 #define SPOST_MAX 3
WINSETUPAPI WINSETUPAPI
skipping to change at line 3414 skipping to change at line 3596
__out_opt PDWORD RequiredSize, __out_opt PDWORD RequiredSize,
__out_opt PWSTR *DestinationInfFileNameComponent __out_opt PWSTR *DestinationInfFileNameComponent
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupCopyOEMInf SetupCopyOEMInfW #define SetupCopyOEMInf SetupCopyOEMInfW
#else #else
#define SetupCopyOEMInf SetupCopyOEMInfA #define SetupCopyOEMInf SetupCopyOEMInfA
#endif #endif
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Flags used by SetupUninstallOEMInf // Flags used by SetupUninstallOEMInf
// //
#define SUOI_FORCEDELETE 0x00000001 #define SUOI_FORCEDELETE 0x00000001
#endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define SUOI_INTERNAL1 0x00000002
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupUninstallOEMInfA( SetupUninstallOEMInfA(
__in PCSTR InfFileName, __in PCSTR InfFileName,
__in DWORD Flags, __in DWORD Flags,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
WINSETUPAPI WINSETUPAPI
skipping to change at line 3454 skipping to change at line 3645
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupUninstallNewlyCopiedInfs( SetupUninstallNewlyCopiedInfs(
__in HSPFILEQ FileQueue, __in HSPFILEQ FileQueue,
__in DWORD Flags, __in DWORD Flags,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Disk space list APIs // Disk space list APIs
// //
WINSETUPAPI WINSETUPAPI
HDSKSPC HDSKSPC
WINAPI WINAPI
SetupCreateDiskSpaceListA( SetupCreateDiskSpaceListA(
__reserved PVOID Reserved1, __reserved PVOID Reserved1,
__reserved DWORD Reserved2, __reserved DWORD Reserved2,
skipping to change at line 3821 skipping to change at line 4012
#define SetupIterateCabinet SetupIterateCabinetW #define SetupIterateCabinet SetupIterateCabinetW
#else #else
#define SetupIterateCabinet SetupIterateCabinetA #define SetupIterateCabinet SetupIterateCabinetA
#endif #endif
WINSETUPAPI WINSETUPAPI
INT INT
WINAPI WINAPI
SetupPromptReboot( SetupPromptReboot(
__in_opt HSPFILEQ FileQueue, __in_opt HSPFILEQ FileQueue,
__in HWND Owner, __in_opt HWND Owner,
__in BOOL ScanOnly __in BOOL ScanOnly
); );
// //
// Define flags that are returned by SetupPromptReboot // Define flags that are returned by SetupPromptReboot
// //
#define SPFILEQ_FILE_IN_USE 0x00000001 #define SPFILEQ_FILE_IN_USE 0x00000001
#define SPFILEQ_REBOOT_RECOMMENDED 0x00000002 #define SPFILEQ_REBOOT_RECOMMENDED 0x00000002
#define SPFILEQ_REBOOT_IN_PROGRESS 0x00000004 #define SPFILEQ_REBOOT_IN_PROGRESS 0x00000004
WINSETUPAPI WINSETUPAPI
PVOID PVOID
WINAPI WINAPI
SetupInitDefaultQueueCallback( SetupInitDefaultQueueCallback(
__in HWND OwnerWindow __in_opt HWND OwnerWindow
); );
WINSETUPAPI WINSETUPAPI
PVOID PVOID
WINAPI WINAPI
SetupInitDefaultQueueCallbackEx( SetupInitDefaultQueueCallbackEx(
__in HWND OwnerWindow, __in_opt HWND OwnerWindow,
__in_opt HWND AlternateProgressWindow, __in_opt HWND AlternateProgressWindow,
__in UINT ProgressMessage, __in UINT ProgressMessage,
__reserved DWORD Reserved1, __reserved DWORD Reserved1,
__reserved PVOID Reserved2 __reserved PVOID Reserved2
); );
WINSETUPAPI WINSETUPAPI
VOID VOID
WINAPI WINAPI
SetupTermDefaultQueueCallback( SetupTermDefaultQueueCallback(
skipping to change at line 3898 skipping to change at line 4089
// //
// The low word contains basic flags concerning the general data type // The low word contains basic flags concerning the general data type
// and AddReg action. The high word contains values that more specifically // and AddReg action. The high word contains values that more specifically
// identify the data type of the registry value. The high word is ignored // identify the data type of the registry value. The high word is ignored
// by the 16-bit Windows 95 SETUPX APIs. // by the 16-bit Windows 95 SETUPX APIs.
// //
// If <ValueType> has FLG_ADDREG_DELREG_BIT set, it will be ignored by AddReg // If <ValueType> has FLG_ADDREG_DELREG_BIT set, it will be ignored by AddReg
// (not supported by SetupX). // (not supported by SetupX).
// //
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define FLG_ADDREG_DELREG_BIT ( 0x00008000 ) // if set, interpret as DELRE G, see below #define FLG_ADDREG_DELREG_BIT ( 0x00008000 ) // if set, interpret as DELRE G, see below
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define FLG_ADDREG_BINVALUETYPE ( 0x00000001 ) #define FLG_ADDREG_BINVALUETYPE ( 0x00000001 )
#define FLG_ADDREG_NOCLOBBER ( 0x00000002 ) #define FLG_ADDREG_NOCLOBBER ( 0x00000002 )
#define FLG_ADDREG_DELVAL ( 0x00000004 ) #define FLG_ADDREG_DELVAL ( 0x00000004 )
#define FLG_ADDREG_APPEND ( 0x00000008 ) // Currently supported only #define FLG_ADDREG_APPEND ( 0x00000008 ) // Currently supported only
// for REG_MULTI_SZ values. // for REG_MULTI_SZ values.
#define FLG_ADDREG_KEYONLY ( 0x00000010 ) // Just create the key, ignor e value #define FLG_ADDREG_KEYONLY ( 0x00000010 ) // Just create the key, ignor e value
#define FLG_ADDREG_OVERWRITEONLY ( 0x00000020 ) // Set only if value already exists #define FLG_ADDREG_OVERWRITEONLY ( 0x00000020 ) // Set only if value already exists
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define FLG_ADDREG_64BITKEY ( 0x00001000 ) // make this change in the 64 bit registry. #define FLG_ADDREG_64BITKEY ( 0x00001000 ) // make this change in the 64 bit registry.
#define FLG_ADDREG_KEYONLY_COMMON ( 0x00002000 ) // same as FLG_ADDREG_KEYONLY but also works for DELREG #define FLG_ADDREG_KEYONLY_COMMON ( 0x00002000 ) // same as FLG_ADDREG_KEYONLY but also works for DELREG
#define FLG_ADDREG_32BITKEY ( 0x00004000 ) // make this change in the 32 bit registry. #define FLG_ADDREG_32BITKEY ( 0x00004000 ) // make this change in the 32 bit registry.
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// The INF may supply any arbitrary data type ordinal in the highword except // The INF may supply any arbitrary data type ordinal in the highword except
// for the following: REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ. If this // for the following: REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ. If this
// technique is used, then the data is given in binary format, one byte per // technique is used, then the data is given in binary format, one byte per
// field. // field.
// //
#define FLG_ADDREG_TYPE_MASK ( 0xFFFF0000 | FLG_ADDREG_BINVALUETYPE ) #define FLG_ADDREG_TYPE_MASK ( 0xFFFF0000 | FLG_ADDREG_BINVALUETYPE )
#define FLG_ADDREG_TYPE_SZ ( 0x00000000 ) #define FLG_ADDREG_TYPE_SZ ( 0x00000000 )
#define FLG_ADDREG_TYPE_MULTI_SZ ( 0x00010000 ) #define FLG_ADDREG_TYPE_MULTI_SZ ( 0x00010000 )
skipping to change at line 3953 skipping to change at line 4144
// The bits determined by mask FLG_DELREG_TYPE_MASK indicates type of data expec ted. // The bits determined by mask FLG_DELREG_TYPE_MASK indicates type of data expec ted.
// <Operation> must have FLG_ADDREG_DELREG_BIT set, otherwise it is ignored and specified // <Operation> must have FLG_ADDREG_DELREG_BIT set, otherwise it is ignored and specified
// value will be deleted (allowing an AddReg section to also be used as a DelReg section) // value will be deleted (allowing an AddReg section to also be used as a DelReg section)
// if <Operation> is not specified, <ValueName> will be deleted (if specified) o therwise // if <Operation> is not specified, <ValueName> will be deleted (if specified) o therwise
// <SubKey> will be deleted. // <SubKey> will be deleted.
// //
// the compatability flag // the compatability flag
// //
#define FLG_DELREG_VALUE (0x00000000) #define FLG_DELREG_VALUE (0x00000000)
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define FLG_DELREG_TYPE_MASK FLG_ADDREG_TYPE_MASK // 0xFFFF0001 #define FLG_DELREG_TYPE_MASK FLG_ADDREG_TYPE_MASK // 0xFFFF0001
#define FLG_DELREG_TYPE_SZ FLG_ADDREG_TYPE_SZ // 0x00000000 #define FLG_DELREG_TYPE_SZ FLG_ADDREG_TYPE_SZ // 0x00000000
#define FLG_DELREG_TYPE_MULTI_SZ FLG_ADDREG_TYPE_MULTI_SZ // 0x00010000 #define FLG_DELREG_TYPE_MULTI_SZ FLG_ADDREG_TYPE_MULTI_SZ // 0x00010000
#define FLG_DELREG_TYPE_EXPAND_SZ FLG_ADDREG_TYPE_EXPAND_SZ // 0x00020000 #define FLG_DELREG_TYPE_EXPAND_SZ FLG_ADDREG_TYPE_EXPAND_SZ // 0x00020000
#define FLG_DELREG_TYPE_BINARY FLG_ADDREG_TYPE_BINARY // 0x00000001 #define FLG_DELREG_TYPE_BINARY FLG_ADDREG_TYPE_BINARY // 0x00000001
#define FLG_DELREG_TYPE_DWORD FLG_ADDREG_TYPE_DWORD // 0x00010001 #define FLG_DELREG_TYPE_DWORD FLG_ADDREG_TYPE_DWORD // 0x00010001
#define FLG_DELREG_TYPE_NONE FLG_ADDREG_TYPE_NONE // 0x00020001 #define FLG_DELREG_TYPE_NONE FLG_ADDREG_TYPE_NONE // 0x00020001
#define FLG_DELREG_64BITKEY FLG_ADDREG_64BITKEY // 0x00001000 #define FLG_DELREG_64BITKEY FLG_ADDREG_64BITKEY // 0x00001000
#define FLG_DELREG_KEYONLY_COMMON FLG_ADDREG_KEYONLY_COMMON // 0x00002000 #define FLG_DELREG_KEYONLY_COMMON FLG_ADDREG_KEYONLY_COMMON // 0x00002000
skipping to change at line 3975 skipping to change at line 4166
// //
// <Operation> = FLG_DELREG_MULTI_SZ_DELSTRING // <Operation> = FLG_DELREG_MULTI_SZ_DELSTRING
// <RegRootString>,<SubKey>,<ValueName>,0x00018002,<String> // <RegRootString>,<SubKey>,<ValueName>,0x00018002,<String>
// removes all entries matching <String> (case ignored) from multi -sz registry value // removes all entries matching <String> (case ignored) from multi -sz registry value
// //
#define FLG_DELREG_OPERATION_MASK (0x000000FE) #define FLG_DELREG_OPERATION_MASK (0x000000FE)
#define FLG_DELREG_MULTI_SZ_DELSTRING ( FLG_DELREG_TYPE_MULTI_SZ | FLG_ADDREG_DE LREG_BIT | 0x00000002 ) // 0x00018002 #define FLG_DELREG_MULTI_SZ_DELSTRING ( FLG_DELREG_TYPE_MULTI_SZ | FLG_ADDREG_DE LREG_BIT | 0x00000002 ) // 0x00018002
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Flags for BitReg section lines in INF. // Flags for BitReg section lines in INF.
// //
#define FLG_BITREG_CLEARBITS ( 0x00000000 ) #define FLG_BITREG_CLEARBITS ( 0x00000000 )
#define FLG_BITREG_SETBITS ( 0x00000001 ) #define FLG_BITREG_SETBITS ( 0x00000001 )
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define FLG_BITREG_64BITKEY ( 0x00001000 ) #define FLG_BITREG_64BITKEY ( 0x00001000 )
#define FLG_BITREG_32BITKEY ( 0x00004000 ) #define FLG_BITREG_32BITKEY ( 0x00004000 )
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Flags for Ini2Reg section lines in INF. // Flags for Ini2Reg section lines in INF.
// //
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define FLG_INI2REG_64BITKEY ( 0x00001000 ) #define FLG_INI2REG_64BITKEY ( 0x00001000 )
#define FLG_INI2REG_32BITKEY ( 0x00004000 ) #define FLG_INI2REG_32BITKEY ( 0x00004000 )
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Flags for RegSvr section lines in INF // Flags for RegSvr section lines in INF
// //
#define FLG_REGSVR_DLLREGISTER ( 0x00000001 ) #define FLG_REGSVR_DLLREGISTER ( 0x00000001 )
#define FLG_REGSVR_DLLINSTALL ( 0x00000002 ) #define FLG_REGSVR_DLLINSTALL ( 0x00000002 )
// Flags for RegSvr section lines in INF // Flags for RegSvr section lines in INF
// //
#define FLG_PROFITEM_CURRENTUSER ( 0x00000001 ) #define FLG_PROFITEM_CURRENTUSER ( 0x00000001 )
#define FLG_PROFITEM_DELETE ( 0x00000002 ) #define FLG_PROFITEM_DELETE ( 0x00000002 )
#define FLG_PROFITEM_GROUP ( 0x00000004 ) #define FLG_PROFITEM_GROUP ( 0x00000004 )
#define FLG_PROFITEM_CSIDL ( 0x00000008 ) #define FLG_PROFITEM_CSIDL ( 0x00000008 )
//
// Flags for AddProperty section lines in the INF
//
#define FLG_ADDPROPERTY_NOCLOBBER ( 0x00000001 )
#define FLG_ADDPROPERTY_OVERWRITEONLY ( 0x00000002 )
#define FLG_ADDPROPERTY_APPEND ( 0x00000004 )
#define FLG_ADDPROPERTY_OR ( 0x00000008 )
#define FLG_ADDPROPERTY_AND ( 0x00000010 )
//
// Flags for DelProperty section lines in the INF
//
#define FLG_DELPROPERTY_MULTI_SZ_DELSTRING ( 0x00000001 )
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupInstallFromInfSectionA( SetupInstallFromInfSectionA(
__in_opt HWND Owner, __in_opt HWND Owner,
__in HINF InfHandle, __in HINF InfHandle,
__in PCSTR SectionName, __in PCSTR SectionName,
__in UINT Flags, __in UINT Flags,
__in_opt HKEY RelativeKeyRoot, __in_opt HKEY RelativeKeyRoot,
__in_opt PCSTR SourceRootPath, __in_opt PCSTR SourceRootPath,
skipping to change at line 4067 skipping to change at line 4274
#define SPINST_LOGCONFIG 0x00000001 #define SPINST_LOGCONFIG 0x00000001
#define SPINST_INIFILES 0x00000002 #define SPINST_INIFILES 0x00000002
#define SPINST_REGISTRY 0x00000004 #define SPINST_REGISTRY 0x00000004
#define SPINST_INI2REG 0x00000008 #define SPINST_INI2REG 0x00000008
#define SPINST_FILES 0x00000010 #define SPINST_FILES 0x00000010
#define SPINST_BITREG 0x00000020 #define SPINST_BITREG 0x00000020
#define SPINST_REGSVR 0x00000040 #define SPINST_REGSVR 0x00000040
#define SPINST_UNREGSVR 0x00000080 #define SPINST_UNREGSVR 0x00000080
#define SPINST_PROFILEITEMS 0x00000100 #define SPINST_PROFILEITEMS 0x00000100
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define SPINST_COPYINF 0x00000200 #define SPINST_COPYINF 0x00000200
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define SPINST_PROPERTIES 0x00000400
#define SPINST_ALL 0x000007ff
#else
#define SPINST_ALL 0x000003ff #define SPINST_ALL 0x000003ff
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#else #else
#define SPINST_ALL 0x000001ff #define SPINST_ALL 0x000001ff
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define SPINST_SINGLESECTION 0x00010000 #define SPINST_SINGLESECTION 0x00010000
#define SPINST_LOGCONFIG_IS_FORCED 0x00020000 #define SPINST_LOGCONFIG_IS_FORCED 0x00020000
#define SPINST_LOGCONFIGS_ARE_OVERRIDES 0x00040000 #define SPINST_LOGCONFIGS_ARE_OVERRIDES 0x00040000
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define SPINST_REGISTERCALLBACKAWARE 0x00080000 #define SPINST_REGISTERCALLBACKAWARE 0x00080000
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#define SPINST_DEVICEINSTALL 0x00100000
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupInstallFilesFromInfSectionA( SetupInstallFilesFromInfSectionA(
__in HINF InfHandle, __in HINF InfHandle,
__in_opt HINF LayoutInfHandle, __in_opt HINF LayoutInfHandle,
__in HSPFILEQ FileQueue, __in HSPFILEQ FileQueue,
__in PCSTR SectionName, __in PCSTR SectionName,
__in_opt PCSTR SourceRootPath, __in_opt PCSTR SourceRootPath,
skipping to change at line 4177 skipping to change at line 4400
// //
// (AddService) don't overwrite description if it already exists // (AddService) don't overwrite description if it already exists
// //
#define SPSVCINST_NOCLOBBER_DESCRIPTION (0x00000100) #define SPSVCINST_NOCLOBBER_DESCRIPTION (0x00000100)
// //
// (DelService) stop the associated service specified in // (DelService) stop the associated service specified in
// a DelService entry before deleting the service // a DelService entry before deleting the service
// //
#define SPSVCINST_STOPSERVICE (0x00000200) #define SPSVCINST_STOPSERVICE (0x00000200)
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// (AddService) force overwrite of security settings // (AddService) force overwrite of security settings
// //
#define SPSVCINST_CLOBBER_SECURITY (0x00000400) #define SPSVCINST_CLOBBER_SECURITY (0x00000400)
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
//
// (Start Service) start a service manually after install
//
#define SPSVCINST_STARTSERVICE (0x00000800)
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupInstallServicesFromInfSectionA( SetupInstallServicesFromInfSectionA(
__in HINF InfHandle, __in HINF InfHandle,
__in PCSTR SectionName, __in PCSTR SectionName,
__in DWORD Flags __in DWORD Flags
); );
skipping to change at line 4470 skipping to change at line 4701
#endif #endif
WINSETUPAPI WINSETUPAPI
VOID VOID
WINAPI WINAPI
SetupCloseLog ( SetupCloseLog (
VOID VOID
); );
// //
// Text log for INF debugging
//
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
SP_LOG_TOKEN
SetupGetThreadLogToken(
VOID
);
VOID
SetupSetThreadLogToken(
__in SP_LOG_TOKEN LogToken
);
VOID
SetupWriteTextLog(
__in SP_LOG_TOKEN LogToken,
__in DWORD Category,
__in DWORD Flags,
__in PCSTR MessageStr,
...
);
VOID
SetupWriteTextLogError(
__in SP_LOG_TOKEN LogToken,
__in DWORD Category,
__in DWORD LogFlags,
__in DWORD Error,
__in PCSTR MessageStr,
...
);
VOID
SetupWriteTextLogInfLine(
__in SP_LOG_TOKEN LogToken,
__in DWORD Flags,
__in HINF InfHandle,
__in PINFCONTEXT Context
);
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
//
// Backup Information API's // Backup Information API's
// //
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupGetBackupInformationA( SetupGetBackupInformationA(
__in HSPFILEQ QueueHandle, __in HSPFILEQ QueueHandle,
__out PSP_BACKUP_QUEUE_PARAMS_A BackupParams __inout PSP_BACKUP_QUEUE_PARAMS_A BackupParams
); );
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupGetBackupInformationW( SetupGetBackupInformationW(
__in HSPFILEQ QueueHandle, __in HSPFILEQ QueueHandle,
__out PSP_BACKUP_QUEUE_PARAMS_W BackupParams __inout PSP_BACKUP_QUEUE_PARAMS_W BackupParams
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupGetBackupInformation SetupGetBackupInformationW #define SetupGetBackupInformation SetupGetBackupInformationW
#else #else
#define SetupGetBackupInformation SetupGetBackupInformationA #define SetupGetBackupInformation SetupGetBackupInformationA
#endif #endif
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupPrepareQueueForRestoreA( SetupPrepareQueueForRestoreA(
__in HSPFILEQ QueueHandle, __in HSPFILEQ QueueHandle,
__in PCSTR BackupPath, __in PCSTR BackupPath,
__in DWORD RestoreFlags __in DWORD RestoreFlags
); );
skipping to change at line 4521 skipping to change at line 4797
__in PCWSTR BackupPath, __in PCWSTR BackupPath,
__in DWORD RestoreFlags __in DWORD RestoreFlags
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupPrepareQueueForRestore SetupPrepareQueueForRestoreW #define SetupPrepareQueueForRestore SetupPrepareQueueForRestoreW
#else #else
#define SetupPrepareQueueForRestore SetupPrepareQueueForRestoreA #define SetupPrepareQueueForRestore SetupPrepareQueueForRestoreA
#endif #endif
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Control forcing of Non-Interactive Mode // Control forcing of Non-Interactive Mode
// Overriden if SetupAPI is run in non-interactive window session // Overriden if SetupAPI is run in non-interactive window session
// //
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupSetNonInteractiveMode( SetupSetNonInteractiveMode(
__in BOOL NonInteractiveFlag __in BOOL NonInteractiveFlag
); );
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupGetNonInteractiveMode( SetupGetNonInteractiveMode(
VOID VOID
); );
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Device Installer APIs // Device Installer APIs
// //
__checkReturn
WINSETUPAPI WINSETUPAPI
HDEVINFO HDEVINFO
WINAPI WINAPI
SetupDiCreateDeviceInfoList( SetupDiCreateDeviceInfoList(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in_opt HWND hwndParent __in_opt HWND hwndParent
); );
__checkReturn
WINSETUPAPI WINSETUPAPI
HDEVINFO HDEVINFO
WINAPI WINAPI
SetupDiCreateDeviceInfoListExA( SetupDiCreateDeviceInfoListExA(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in_opt HWND hwndParent, __in_opt HWND hwndParent,
__in_opt PCSTR MachineName, __in_opt PCSTR MachineName,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
__checkReturn
WINSETUPAPI WINSETUPAPI
HDEVINFO HDEVINFO
WINAPI WINAPI
SetupDiCreateDeviceInfoListExW( SetupDiCreateDeviceInfoListExW(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in_opt HWND hwndParent, __in_opt HWND hwndParent,
__in_opt PCWSTR MachineName, __in_opt PCWSTR MachineName,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
skipping to change at line 4694 skipping to change at line 4973
#endif #endif
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiGetDeviceInstanceIdA( SetupDiGetDeviceInstanceIdA(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData, __in PSP_DEVINFO_DATA DeviceInfoData,
__out_ecount_opt(DeviceInstanceIdSize) PSTR DeviceInstanceId, __out_ecount_opt(DeviceInstanceIdSize) PSTR DeviceInstanceId,
__in DWORD DeviceInstanceIdSize, __in DWORD DeviceInstanceIdSize,
__out_opt PDWORD RequiredSize __out_opt __deref_out_range(0, MAX_DEVICE_ID_LEN) PDWORD RequiredSize
); );
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiGetDeviceInstanceIdW( SetupDiGetDeviceInstanceIdW(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData, __in PSP_DEVINFO_DATA DeviceInfoData,
__out_ecount_opt(DeviceInstanceIdSize) PWSTR DeviceInstanceId, __out_ecount_opt(DeviceInstanceIdSize) PWSTR DeviceInstanceId,
__in DWORD DeviceInstanceIdSize, __in DWORD DeviceInstanceIdSize,
__out_opt PDWORD RequiredSize __out_opt __deref_out_range(0, MAX_DEVICE_ID_LEN) PDWORD RequiredSize
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdW #define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdW
#else #else
#define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdA #define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdA
#endif #endif
WINSETUPAPI WINSETUPAPI
BOOL BOOL
skipping to change at line 4884 skipping to change at line 5163
// Backward compatibility--do not use. // Backward compatibility--do not use.
// //
#define SetupDiRemoveInterfaceDevice SetupDiRemoveDeviceInterface #define SetupDiRemoveInterfaceDevice SetupDiRemoveDeviceInterface
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiGetDeviceInterfaceDetailA( SetupDiGetDeviceInterfaceDetailA(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, __in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
__out_bcount_opt(DeviceInterfaceDetailDataSize) PSP_DEVICE_INTERFACE_DETAIL_ DATA_A DeviceInterfaceDetailData, __inout_bcount_opt(DeviceInterfaceDetailDataSize) PSP_DEVICE_INTERFACE_DETAI L_DATA_A DeviceInterfaceDetailData,
__in DWORD DeviceInterfaceDetailDataSize, __in DWORD DeviceInterfaceDetailDataSize,
__out_opt PDWORD RequiredSize, __out_opt PDWORD RequiredSize,
__out_opt PSP_DEVINFO_DATA DeviceInfoData __out_opt PSP_DEVINFO_DATA DeviceInfoData
); );
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiGetDeviceInterfaceDetailW( SetupDiGetDeviceInterfaceDetailW(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
skipping to change at line 4935 skipping to change at line 5214
SetupDiInstallDeviceInterfaces( SetupDiInstallDeviceInterfaces(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData __in PSP_DEVINFO_DATA DeviceInfoData
); );
// //
// Backward compatibility--do not use. // Backward compatibility--do not use.
// //
#define SetupDiInstallInterfaceDevices SetupDiInstallDeviceInterfaces #define SetupDiInstallInterfaceDevices SetupDiInstallDeviceInterfaces
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiSetDeviceInterfaceDefault( SetupDiSetDeviceInterfaceDefault(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__inout PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, __inout PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
__in DWORD Flags, __in DWORD Flags,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Default install handler for DIF_REGISTERDEVICE // Default install handler for DIF_REGISTERDEVICE
// //
// //
// Flags for SetupDiRegisterDeviceInfo // Flags for SetupDiRegisterDeviceInfo
// //
#define SPRDI_FIND_DUPS 0x00000001 #define SPRDI_FIND_DUPS 0x00000001
skipping to change at line 5125 skipping to change at line 5404
#define DIGCF_PRESENT 0x00000002 #define DIGCF_PRESENT 0x00000002
#define DIGCF_ALLCLASSES 0x00000004 #define DIGCF_ALLCLASSES 0x00000004
#define DIGCF_PROFILE 0x00000008 #define DIGCF_PROFILE 0x00000008
#define DIGCF_DEVICEINTERFACE 0x00000010 #define DIGCF_DEVICEINTERFACE 0x00000010
// //
// Backward compatibility--do not use. // Backward compatibility--do not use.
// //
#define DIGCF_INTERFACEDEVICE DIGCF_DEVICEINTERFACE #define DIGCF_INTERFACEDEVICE DIGCF_DEVICEINTERFACE
__checkReturn
WINSETUPAPI WINSETUPAPI
HDEVINFO HDEVINFO
WINAPI WINAPI
SetupDiGetClassDevsA( SetupDiGetClassDevsA(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in_opt PCSTR Enumerator, __in_opt PCSTR Enumerator,
__in_opt HWND hwndParent, __in_opt HWND hwndParent,
__in DWORD Flags __in DWORD Flags
); );
__checkReturn
WINSETUPAPI WINSETUPAPI
HDEVINFO HDEVINFO
WINAPI WINAPI
SetupDiGetClassDevsW( SetupDiGetClassDevsW(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in_opt PCWSTR Enumerator, __in_opt PCWSTR Enumerator,
__in_opt HWND hwndParent, __in_opt HWND hwndParent,
__in DWORD Flags __in DWORD Flags
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiGetClassDevs SetupDiGetClassDevsW #define SetupDiGetClassDevs SetupDiGetClassDevsW
#else #else
#define SetupDiGetClassDevs SetupDiGetClassDevsA #define SetupDiGetClassDevs SetupDiGetClassDevsA
#endif #endif
__checkReturn
WINSETUPAPI WINSETUPAPI
HDEVINFO HDEVINFO
WINAPI WINAPI
SetupDiGetClassDevsExA( SetupDiGetClassDevsExA(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in_opt PCSTR Enumerator, __in_opt PCSTR Enumerator,
__in_opt HWND hwndParent, __in_opt HWND hwndParent,
__in DWORD Flags, __in DWORD Flags,
__in_opt HDEVINFO DeviceInfoSet, __in_opt HDEVINFO DeviceInfoSet,
__in_opt PCSTR MachineName, __in_opt PCSTR MachineName,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
__checkReturn
WINSETUPAPI WINSETUPAPI
HDEVINFO HDEVINFO
WINAPI WINAPI
SetupDiGetClassDevsExW( SetupDiGetClassDevsExW(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in_opt PCWSTR Enumerator, __in_opt PCWSTR Enumerator,
__in_opt HWND hwndParent, __in_opt HWND hwndParent,
__in DWORD Flags, __in DWORD Flags,
__in_opt HDEVINFO DeviceInfoSet, __in_opt HDEVINFO DeviceInfoSet,
__in_opt PCWSTR MachineName, __in_opt PCWSTR MachineName,
skipping to change at line 5400 skipping to change at line 5683
// Default install handler for DIF_UNREMOVE // Default install handler for DIF_UNREMOVE
// //
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiUnremoveDevice( SetupDiUnremoveDevice(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__inout PSP_DEVINFO_DATA DeviceInfoData __inout PSP_DEVINFO_DATA DeviceInfoData
); );
#if _SETUPAPI_VER >= 0x0502 #if _SETUPAPI_VER >= _WIN32_WINNT_WS03
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiRestartDevices( SetupDiRestartDevices(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__inout PSP_DEVINFO_DATA DeviceInfoData __inout PSP_DEVINFO_DATA DeviceInfoData
); );
#endif // _SETUPAPI_VER >= 0x0502 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WS03
// //
// Default install handler for DIF_PROPERTYCHANGE // Default install handler for DIF_PROPERTYCHANGE
// //
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiChangeState( SetupDiChangeState(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__inout PSP_DEVINFO_DATA DeviceInfoData __inout PSP_DEVINFO_DATA DeviceInfoData
); );
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
//
// Default install handler for DIF_FINISHINSTALL_ACTION
//
WINSETUPAPI
BOOL
WINAPI
SetupDiFinishInstallAction(
__in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData
);
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiInstallClassA( SetupDiInstallClassA(
__in_opt HWND hwndParent, __in_opt HWND hwndParent,
__in PCSTR InfFileName, __in PCSTR InfFileName,
__in DWORD Flags, __in DWORD Flags,
__in_opt HSPFILEQ FileQueue __in_opt HSPFILEQ FileQueue
); );
skipping to change at line 5481 skipping to change at line 5779
__reserved PVOID Reserved1, __reserved PVOID Reserved1,
__reserved PVOID Reserved2 __reserved PVOID Reserved2
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiInstallClassEx SetupDiInstallClassExW #define SetupDiInstallClassEx SetupDiInstallClassExW
#else #else
#define SetupDiInstallClassEx SetupDiInstallClassExA #define SetupDiInstallClassEx SetupDiInstallClassExA
#endif #endif
__checkReturn
WINSETUPAPI WINSETUPAPI
HKEY HKEY
WINAPI WINAPI
SetupDiOpenClassRegKey( SetupDiOpenClassRegKey(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in REGSAM samDesired __in REGSAM samDesired
); );
// //
// Flags for SetupDiOpenClassRegKeyEx // Flags for SetupDiOpenClassRegKeyEx
// //
#define DIOCR_INSTALLER 0x00000001 // class installer registry branch #define DIOCR_INSTALLER 0x00000001 // class installer registry branch
#define DIOCR_INTERFACE 0x00000002 // interface class registry branch #define DIOCR_INTERFACE 0x00000002 // interface class registry branch
__checkReturn
WINSETUPAPI WINSETUPAPI
HKEY HKEY
WINAPI WINAPI
SetupDiOpenClassRegKeyExA( SetupDiOpenClassRegKeyExA(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in REGSAM samDesired, __in REGSAM samDesired,
__in DWORD Flags, __in DWORD Flags,
__in_opt PCSTR MachineName, __in_opt PCSTR MachineName,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
__checkReturn
WINSETUPAPI WINSETUPAPI
HKEY HKEY
WINAPI WINAPI
SetupDiOpenClassRegKeyExW( SetupDiOpenClassRegKeyExW(
__in_opt CONST GUID *ClassGuid, __in_opt CONST GUID *ClassGuid,
__in REGSAM samDesired, __in REGSAM samDesired,
__in DWORD Flags, __in DWORD Flags,
__in_opt PCWSTR MachineName, __in_opt PCWSTR MachineName,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExW #define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExW
#else #else
#define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExA #define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExA
#endif #endif
__checkReturn
WINSETUPAPI WINSETUPAPI
HKEY HKEY
WINAPI WINAPI
SetupDiCreateDeviceInterfaceRegKeyA( SetupDiCreateDeviceInterfaceRegKeyA(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, __in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
__reserved DWORD Reserved, __reserved DWORD Reserved,
__in REGSAM samDesired, __in REGSAM samDesired,
__in_opt HINF InfHandle, __in_opt HINF InfHandle,
__in_opt PCSTR InfSectionName __in_opt PCSTR InfSectionName
); );
__checkReturn
WINSETUPAPI WINSETUPAPI
HKEY HKEY
WINAPI WINAPI
SetupDiCreateDeviceInterfaceRegKeyW( SetupDiCreateDeviceInterfaceRegKeyW(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, __in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
__reserved DWORD Reserved, __reserved DWORD Reserved,
__in REGSAM samDesired, __in REGSAM samDesired,
__in_opt HINF InfHandle, __in_opt HINF InfHandle,
__in_opt PCWSTR InfSectionName __in_opt PCWSTR InfSectionName
skipping to change at line 5564 skipping to change at line 5867
// Backward compatibility--do not use. // Backward compatibility--do not use.
// //
#define SetupDiCreateInterfaceDeviceRegKeyW SetupDiCreateDeviceInterfaceRegKeyW #define SetupDiCreateInterfaceDeviceRegKeyW SetupDiCreateDeviceInterfaceRegKeyW
#define SetupDiCreateInterfaceDeviceRegKeyA SetupDiCreateDeviceInterfaceRegKeyA #define SetupDiCreateInterfaceDeviceRegKeyA SetupDiCreateDeviceInterfaceRegKeyA
#ifdef UNICODE #ifdef UNICODE
#define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyW #define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyW
#else #else
#define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyA #define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyA
#endif #endif
__checkReturn
WINSETUPAPI WINSETUPAPI
HKEY HKEY
WINAPI WINAPI
SetupDiOpenDeviceInterfaceRegKey( SetupDiOpenDeviceInterfaceRegKey(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, __in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
__reserved DWORD Reserved, __reserved DWORD Reserved,
__in REGSAM samDesired __in REGSAM samDesired
); );
skipping to change at line 5601 skipping to change at line 5905
#define SetupDiDeleteInterfaceDeviceRegKey SetupDiDeleteDeviceInterfaceRegKey #define SetupDiDeleteInterfaceDeviceRegKey SetupDiDeleteDeviceInterfaceRegKey
// //
// KeyType values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and // KeyType values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and
// SetupDiDeleteDevRegKey. // SetupDiDeleteDevRegKey.
// //
#define DIREG_DEV 0x00000001 // Open/Create/Delete device key #define DIREG_DEV 0x00000001 // Open/Create/Delete device key
#define DIREG_DRV 0x00000002 // Open/Create/Delete driver key #define DIREG_DRV 0x00000002 // Open/Create/Delete driver key
#define DIREG_BOTH 0x00000004 // Delete both driver and Device key #define DIREG_BOTH 0x00000004 // Delete both driver and Device key
__checkReturn
WINSETUPAPI WINSETUPAPI
HKEY HKEY
WINAPI WINAPI
SetupDiCreateDevRegKeyA( SetupDiCreateDevRegKeyA(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData, __in PSP_DEVINFO_DATA DeviceInfoData,
__in DWORD Scope, __in DWORD Scope,
__in DWORD HwProfile, __in DWORD HwProfile,
__in DWORD KeyType, __in DWORD KeyType,
__in_opt HINF InfHandle, __in_opt HINF InfHandle,
__in_opt PCSTR InfSectionName __in_opt PCSTR InfSectionName
); );
__checkReturn
WINSETUPAPI WINSETUPAPI
HKEY HKEY
WINAPI WINAPI
SetupDiCreateDevRegKeyW( SetupDiCreateDevRegKeyW(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData, __in PSP_DEVINFO_DATA DeviceInfoData,
__in DWORD Scope, __in DWORD Scope,
__in DWORD HwProfile, __in DWORD HwProfile,
__in DWORD KeyType, __in DWORD KeyType,
__in_opt HINF InfHandle, __in_opt HINF InfHandle,
__in_opt PCWSTR InfSectionName __in_opt PCWSTR InfSectionName
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyW #define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyW
#else #else
#define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyA #define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyA
#endif #endif
__checkReturn
WINSETUPAPI WINSETUPAPI
HKEY HKEY
WINAPI WINAPI
SetupDiOpenDevRegKey( SetupDiOpenDevRegKey(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData, __in PSP_DEVINFO_DATA DeviceInfoData,
__in DWORD Scope, __in DWORD Scope,
__in DWORD HwProfile, __in DWORD HwProfile,
__in DWORD KeyType, __in DWORD KeyType,
__in REGSAM samDesired __in REGSAM samDesired
skipping to change at line 5696 skipping to change at line 6003
__in_opt PCWSTR MachineName, __in_opt PCWSTR MachineName,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExW #define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExW
#else #else
#define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExA #define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExA
#endif #endif
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDevicePropertyKeys(
__in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData,
__out_ecount_opt(PropertyKeyCount) DEVPROPKEY *PropertyKeyArray,
__in DWORD PropertyKeyCount,
__out_opt PDWORD RequiredPropertyKeyCount,
__in DWORD Flags
);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDevicePropertyW(
__in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData,
__in CONST DEVPROPKEY *PropertyKey,
__out DEVPROPTYPE *PropertyType,
__out_bcount_opt(PropertyBufferSize) PBYTE PropertyBuffer,
__in DWORD PropertyBufferSize,
__out_opt PDWORD RequiredSize,
__in DWORD Flags
);
#ifdef UNICODE
#define SetupDiGetDeviceProperty SetupDiGetDevicePropertyW
#endif
WINSETUPAPI
BOOL
WINAPI
SetupDiSetDevicePropertyW(
__in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData,
__in CONST DEVPROPKEY *PropertyKey,
__in DEVPROPTYPE PropertyType,
__in_bcount_opt(PropertyBufferSize) CONST PBYTE PropertyBuffer,
__in DWORD PropertyBufferSize,
__in DWORD Flags
);
#ifdef UNICODE
#define SetupDiSetDeviceProperty SetupDiSetDevicePropertyW
#endif
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDeviceInterfacePropertyKeys(
__in HDEVINFO DeviceInfoSet,
__in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
__out_ecount_opt(PropertyKeyCount) DEVPROPKEY *PropertyKeyArray,
__in DWORD PropertyKeyCount,
__out_opt PDWORD RequiredPropertyKeyCount,
__in DWORD Flags
);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDeviceInterfacePropertyW(
__in HDEVINFO DeviceInfoSet,
__in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
__in CONST DEVPROPKEY *PropertyKey,
__out DEVPROPTYPE *PropertyType,
__out_bcount_opt(PropertyBufferSize) PBYTE PropertyBuffer,
__in DWORD PropertyBufferSize,
__out_opt PDWORD RequiredSize,
__in DWORD Flags
);
#ifdef UNICODE
#define SetupDiGetDeviceInterfaceProperty SetupDiGetDeviceInterfacePropertyW
#endif
WINSETUPAPI
BOOL
WINAPI
SetupDiSetDeviceInterfacePropertyW(
__in HDEVINFO DeviceInfoSet,
__in PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
__in CONST DEVPROPKEY *PropertyKey,
__in DEVPROPTYPE PropertyType,
__in_bcount_opt(PropertyBufferSize) CONST PBYTE PropertyBuffer,
__in DWORD PropertyBufferSize,
__in DWORD Flags
);
#ifdef UNICODE
#define SetupDiSetDeviceInterfaceProperty SetupDiSetDeviceInterfacePropertyW
#endif
//
// Flags for SetupDiGetClassPropertyKeys, SetupDiGetClassProperty, and
// SetupDiSetClassProperty.
//
#define DICLASSPROP_INSTALLER 0x00000001 // device setup class property
#define DICLASSPROP_INTERFACE 0x00000002 // device interface class property
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassPropertyKeys(
__in CONST GUID *ClassGuid,
__out_ecount_opt(PropertyKeyCount) DEVPROPKEY *PropertyKeyArray,
__in DWORD PropertyKeyCount,
__out_opt PDWORD RequiredPropertyKeyCount,
__in DWORD Flags
);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassPropertyKeysExW(
__in CONST GUID *ClassGuid,
__out_ecount_opt(PropertyKeyCount) DEVPROPKEY *PropertyKeyArray,
__in DWORD PropertyKeyCount,
__out_opt PDWORD RequiredPropertyKeyCount,
__in DWORD Flags,
__in_opt PCWSTR MachineName,
__reserved PVOID Reserved
);
#ifdef UNICODE
#define SetupDiGetClassPropertyKeysEx SetupDiGetClassPropertyKeysExW
#endif
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassPropertyW(
__in CONST GUID *ClassGuid,
__in CONST DEVPROPKEY *PropertyKey,
__out DEVPROPTYPE *PropertyType,
__out_bcount_opt(PropertyBufferSize) PBYTE PropertyBuffer,
__in DWORD PropertyBufferSize,
__out_opt PDWORD RequiredSize,
__in DWORD Flags
);
#ifdef UNICODE
#define SetupDiGetClassProperty SetupDiGetClassPropertyW
#endif
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassPropertyExW(
__in CONST GUID *ClassGuid,
__in CONST DEVPROPKEY *PropertyKey,
__out DEVPROPTYPE *PropertyType,
__out_bcount_opt(PropertyBufferSize) PBYTE PropertyBuffer,
__in DWORD PropertyBufferSize,
__out_opt PDWORD RequiredSize,
__in DWORD Flags,
__in_opt PCWSTR MachineName,
__reserved PVOID Reserved
);
#ifdef UNICODE
#define SetupDiGetClassPropertyEx SetupDiGetClassPropertyExW
#endif
WINSETUPAPI
BOOL
WINAPI
SetupDiSetClassPropertyW(
__in CONST GUID *ClassGuid,
__in CONST DEVPROPKEY *PropertyKey,
__in DEVPROPTYPE PropertyType,
__in_bcount_opt(PropertyBufferSize) CONST PBYTE PropertyBuffer,
__in DWORD PropertyBufferSize,
__in DWORD Flags
);
#ifdef UNICODE
#define SetupDiSetClassProperty SetupDiSetClassPropertyW
#endif
WINSETUPAPI
BOOL
WINAPI
SetupDiSetClassPropertyExW(
__in CONST GUID *ClassGuid,
__in CONST DEVPROPKEY *PropertyKey,
__in DEVPROPTYPE PropertyType,
__in_bcount_opt(PropertyBufferSize) CONST PBYTE PropertyBuffer,
__in DWORD PropertyBufferSize,
__in DWORD Flags,
__in_opt PCWSTR MachineName,
__reserved PVOID Reserved
);
#ifdef UNICODE
#define SetupDiSetClassPropertyEx SetupDiSetClassPropertyExW
#endif
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
// //
// Device registry property codes // Device registry property codes
// (Codes marked as read-only (R) may only be used for // (Codes marked as read-only (R) may only be used for
// SetupDiGetDeviceRegistryProperty) // SetupDiGetDeviceRegistryProperty)
// //
// These values should cover the same set of registry properties // These values should cover the same set of registry properties
// as defined by the CM_DRP codes in cfgmgr32.h. // as defined by the CM_DRP codes in cfgmgr32.h.
// //
// Note that SPDRP codes are zero based while CM_DRP codes are one based! // Note that SPDRP codes are zero based while CM_DRP codes are one based!
// //
skipping to change at line 5755 skipping to change at line 6265
// //
// Class registry property codes // Class registry property codes
// (Codes marked as read-only (R) may only be used for // (Codes marked as read-only (R) may only be used for
// SetupDiGetClassRegistryProperty) // SetupDiGetClassRegistryProperty)
// //
// These values should cover the same set of registry properties // These values should cover the same set of registry properties
// as defined by the CM_CRP codes in cfgmgr32.h. // as defined by the CM_CRP codes in cfgmgr32.h.
// they should also have a 1:1 correspondence with Device registers, where appli cable // they should also have a 1:1 correspondence with Device registers, where appli cable
// but no overlap otherwise // but no overlap otherwise
// //
#define SPCRP_UPPERFILTERS (0x00000011) // UpperFilters (R/W)
#define SPCRP_LOWERFILTERS (0x00000012) // LowerFilters (R/W)
#define SPCRP_SECURITY (0x00000017) // Security (R/W, binary form) #define SPCRP_SECURITY (0x00000017) // Security (R/W, binary form)
#define SPCRP_SECURITY_SDS (0x00000018) // Security (W, SDS form ) #define SPCRP_SECURITY_SDS (0x00000018) // Security (W, SDS form )
#define SPCRP_DEVTYPE (0x00000019) // Device Type (R/W) #define SPCRP_DEVTYPE (0x00000019) // Device Type (R/W)
#define SPCRP_EXCLUSIVE (0x0000001A) // Device is exclusive-a ccess (R/W) #define SPCRP_EXCLUSIVE (0x0000001A) // Device is exclusive-a ccess (R/W)
#define SPCRP_CHARACTERISTICS (0x0000001B) // Device Characteristic s (R/W) #define SPCRP_CHARACTERISTICS (0x0000001B) // Device Characteristic s (R/W)
#define SPCRP_MAXIMUM_PROPERTY (0x0000001C) // Upper bound on ordina ls #define SPCRP_MAXIMUM_PROPERTY (0x0000001C) // Upper bound on ordina ls
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
skipping to change at line 6049 skipping to change at line 6561
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiLoadClassIcon( SetupDiLoadClassIcon(
__in CONST GUID *ClassGuid, __in CONST GUID *ClassGuid,
__out_opt HICON *LargeIcon, __out_opt HICON *LargeIcon,
__out_opt PINT MiniIconIndex __out_opt PINT MiniIconIndex
); );
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
WINSETUPAPI
BOOL
WINAPI
SetupDiLoadDeviceIcon(
__in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData,
__in UINT cxIcon,
__in UINT cyIcon,
__in DWORD Flags,
__out HICON *hIcon
);
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
// //
// Flags controlling the drawing of mini-icons // Flags controlling the drawing of mini-icons
// //
#define DMI_MASK 0x00000001 #define DMI_MASK 0x00000001
#define DMI_BKCOLOR 0x00000002 #define DMI_BKCOLOR 0x00000002
#define DMI_USERECT 0x00000004 #define DMI_USERECT 0x00000004
WINSETUPAPI WINSETUPAPI
INT INT
WINAPI WINAPI
skipping to change at line 6127 skipping to change at line 6655
SetupDiDestroyClassImageList( SetupDiDestroyClassImageList(
__in PSP_CLASSIMAGELIST_DATA ClassImageListData __in PSP_CLASSIMAGELIST_DATA ClassImageListData
); );
// //
// PropertySheetType values for the SetupDiGetClassDevPropertySheets API // PropertySheetType values for the SetupDiGetClassDevPropertySheets API
// //
#define DIGCDP_FLAG_BASIC 0x00000001 #define DIGCDP_FLAG_BASIC 0x00000001
#define DIGCDP_FLAG_ADVANCED 0x00000002 #define DIGCDP_FLAG_ADVANCED 0x00000002
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#define DIGCDP_FLAG_REMOTE_BASIC 0x00000003 // not presently implemented #define DIGCDP_FLAG_REMOTE_BASIC 0x00000003 // not presently implemented
#define DIGCDP_FLAG_REMOTE_ADVANCED 0x00000004 #define DIGCDP_FLAG_REMOTE_ADVANCED 0x00000004
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiGetClassDevPropertySheetsA( SetupDiGetClassDevPropertySheetsA(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in_opt PSP_DEVINFO_DATA DeviceInfoData, __in_opt PSP_DEVINFO_DATA DeviceInfoData,
__in LPPROPSHEETHEADERA PropertySheetHeader, __in LPPROPSHEETHEADERA PropertySheetHeader,
__in DWORD PropertySheetHeaderPageListSize, __in DWORD PropertySheetHeaderPageListSize,
__out_opt PDWORD RequiredSize, __out_opt PDWORD RequiredSize,
skipping to change at line 6402 skipping to change at line 6930
); );
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiSetSelectedDevice( SetupDiSetSelectedDevice(
__in HDEVINFO DeviceInfoSet, __in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData __in PSP_DEVINFO_DATA DeviceInfoData
); );
#if _SETUPAPI_VER >= 0x0502 #if _SETUPAPI_VER >= _WIN32_WINNT_WS03
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiGetActualModelsSectionA( SetupDiGetActualModelsSectionA(
__in PINFCONTEXT Context, __in PINFCONTEXT Context,
__in_opt PSP_ALTPLATFORM_INFO AlternatePlatformInfo, __in_opt PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
__out_ecount_opt(InfSectionWithExtSize) PSTR InfSectionWithExt, __out_ecount_opt(InfSectionWithExtSize) PSTR InfSectionWithExt,
__in DWORD InfSectionWithExtSize, __in DWORD InfSectionWithExtSize,
__out_opt PDWORD RequiredSize, __out_opt PDWORD RequiredSize,
skipping to change at line 6434 skipping to change at line 6962
__out_opt PDWORD RequiredSize, __out_opt PDWORD RequiredSize,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiGetActualModelsSection SetupDiGetActualModelsSectionW #define SetupDiGetActualModelsSection SetupDiGetActualModelsSectionW
#else #else
#define SetupDiGetActualModelsSection SetupDiGetActualModelsSectionA #define SetupDiGetActualModelsSection SetupDiGetActualModelsSectionA
#endif #endif
#endif // _SETUPAPI_VER >= 0x0502 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WS03
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiGetActualSectionToInstallA( SetupDiGetActualSectionToInstallA(
__in HINF InfHandle, __in HINF InfHandle,
__in PCSTR InfSectionName, __in PCSTR InfSectionName,
__out_ecount_opt(InfSectionWithExtSize) PSTR InfSectionWithExt, __out_ecount_opt(InfSectionWithExtSize) PSTR InfSectionWithExt,
__in DWORD InfSectionWithExtSize, __in DWORD InfSectionWithExtSize,
__out_opt PDWORD RequiredSize, __out_opt PDWORD RequiredSize,
skipping to change at line 6466 skipping to change at line 6994
__out_opt PDWORD RequiredSize, __out_opt PDWORD RequiredSize,
__out_opt PWSTR *Extension __out_opt PWSTR *Extension
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallW #define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallW
#else #else
#define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallA #define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallA
#endif #endif
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiGetActualSectionToInstallExA( SetupDiGetActualSectionToInstallExA(
__in HINF InfHandle, __in HINF InfHandle,
__in PCSTR InfSectionName, __in PCSTR InfSectionName,
__in_opt PSP_ALTPLATFORM_INFO AlternatePlatformInfo, __in_opt PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
__out_ecount_opt(InfSectionWithExtSize) PSTR InfSectionWithExt, __out_ecount_opt(InfSectionWithExtSize) PSTR InfSectionWithExt,
__in DWORD InfSectionWithExtSize, __in DWORD InfSectionWithExtSize,
skipping to change at line 6502 skipping to change at line 7030
__out_opt PWSTR *Extension, __out_opt PWSTR *Extension,
__reserved PVOID Reserved __reserved PVOID Reserved
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExW #define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExW
#else #else
#define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExA #define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExA
#endif #endif
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// SetupEnumInfSections is for low-level parsing of an INF // SetupEnumInfSections is for low-level parsing of an INF
// //
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupEnumInfSectionsA ( SetupEnumInfSectionsA (
__in HINF InfHandle, __in HINF InfHandle,
__in UINT Index, __in UINT Index,
skipping to change at line 6537 skipping to change at line 7065
__in UINT Size, __in UINT Size,
__out_opt UINT *SizeNeeded __out_opt UINT *SizeNeeded
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupEnumInfSections SetupEnumInfSectionsW #define SetupEnumInfSections SetupEnumInfSectionsW
#else #else
#define SetupEnumInfSections SetupEnumInfSectionsA #define SetupEnumInfSections SetupEnumInfSectionsA
#endif #endif
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
typedef struct _SP_INF_SIGNER_INFO_A { typedef struct _SP_INF_SIGNER_INFO_V1_A {
DWORD cbSize; DWORD cbSize;
CHAR CatalogFile[MAX_PATH]; CHAR CatalogFile[MAX_PATH];
CHAR DigitalSigner[MAX_PATH]; CHAR DigitalSigner[MAX_PATH];
CHAR DigitalSignerVersion[MAX_PATH]; CHAR DigitalSignerVersion[MAX_PATH];
} SP_INF_SIGNER_INFO_A, *PSP_INF_SIGNER_INFO_A; } SP_INF_SIGNER_INFO_V1_A, *PSP_INF_SIGNER_INFO_V1_A;
typedef struct _SP_INF_SIGNER_INFO_W { typedef struct _SP_INF_SIGNER_INFO_V1_W {
DWORD cbSize; DWORD cbSize;
WCHAR CatalogFile[MAX_PATH]; WCHAR CatalogFile[MAX_PATH];
WCHAR DigitalSigner[MAX_PATH]; WCHAR DigitalSigner[MAX_PATH];
WCHAR DigitalSignerVersion[MAX_PATH]; WCHAR DigitalSignerVersion[MAX_PATH];
} SP_INF_SIGNER_INFO_W, *PSP_INF_SIGNER_INFO_W; } SP_INF_SIGNER_INFO_V1_W, *PSP_INF_SIGNER_INFO_V1_W;
#ifdef UNICODE #ifdef UNICODE
typedef SP_INF_SIGNER_INFO_W SP_INF_SIGNER_INFO; typedef SP_INF_SIGNER_INFO_V1_W SP_INF_SIGNER_INFO_V1;
typedef PSP_INF_SIGNER_INFO_W PSP_INF_SIGNER_INFO; typedef PSP_INF_SIGNER_INFO_V1_W PSP_INF_SIGNER_INFO_V1;
#else #else
typedef SP_INF_SIGNER_INFO_A SP_INF_SIGNER_INFO; typedef SP_INF_SIGNER_INFO_V1_A SP_INF_SIGNER_INFO_V1;
typedef PSP_INF_SIGNER_INFO_A PSP_INF_SIGNER_INFO; typedef PSP_INF_SIGNER_INFO_V1_A PSP_INF_SIGNER_INFO_V1;
#endif
#if _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
typedef struct _SP_INF_SIGNER_INFO_V2_A {
DWORD cbSize;
CHAR CatalogFile[MAX_PATH];
CHAR DigitalSigner[MAX_PATH];
CHAR DigitalSignerVersion[MAX_PATH];
DWORD SignerScore;
} SP_INF_SIGNER_INFO_V2_A, *PSP_INF_SIGNER_INFO_V2_A;
typedef struct _SP_INF_SIGNER_INFO_V2_W {
DWORD cbSize;
WCHAR CatalogFile[MAX_PATH];
WCHAR DigitalSigner[MAX_PATH];
WCHAR DigitalSignerVersion[MAX_PATH];
DWORD SignerScore;
} SP_INF_SIGNER_INFO_V2_W, *PSP_INF_SIGNER_INFO_V2_W;
#ifdef UNICODE
typedef SP_INF_SIGNER_INFO_V2_W SP_INF_SIGNER_INFO_V2;
typedef PSP_INF_SIGNER_INFO_V2_W PSP_INF_SIGNER_INFO_V2;
#else
typedef SP_INF_SIGNER_INFO_V2_A SP_INF_SIGNER_INFO_V2;
typedef PSP_INF_SIGNER_INFO_V2_A PSP_INF_SIGNER_INFO_V2;
#endif #endif
//
// Driver signer scores (high order bit of the signing byte means unsigned)
//
#define SIGNERSCORE_UNKNOWN 0xFF000000
#define SIGNERSCORE_W9X_SUSPECT 0xC0000000
#define SIGNERSCORE_UNSIGNED 0x80000000
#define SIGNERSCORE_AUTHENTICODE 0x0F000000
#define SIGNERSCORE_WHQL 0x0D000005 // base WHQL.
#define SIGNERSCORE_UNCLASSIFIED 0x0D000004 // UNCLASSIFIED == INBOX == STAN
DARD == PREMIUM when the SIGNERSCORE_MASK
#define SIGNERSCORE_INBOX 0x0D000003 // filter is applied.
#define SIGNERSCORE_LOGO_STANDARD 0x0D000002
#define SIGNERSCORE_LOGO_PREMIUM 0x0D000001
#define SIGNERSCORE_MASK 0xFF000000 // Mask out all but the upper BY
TE which contains the ranking signer information
#define SIGNERSCORE_SIGNED_MASK 0xF0000000 // Mask out only the upper nibbl
e, which tells us if the package is signed or not.
#endif // _SETUPAPI_VER >= _WIN32_WINNT_LONGHORN
#if USE_SP_INF_SIGNER_INFO_V1 || (_SETUPAPI_VER < _WIN32_WINNT_LONGHORN) // use
version 1 signer info structure
typedef SP_INF_SIGNER_INFO_V1_A SP_INF_SIGNER_INFO_A;
typedef PSP_INF_SIGNER_INFO_V1_A PSP_INF_SIGNER_INFO_A;
typedef SP_INF_SIGNER_INFO_V1_W SP_INF_SIGNER_INFO_W;
typedef PSP_INF_SIGNER_INFO_V1_W PSP_INF_SIGNER_INFO_W;
typedef SP_INF_SIGNER_INFO_V1 SP_INF_SIGNER_INFO;
typedef PSP_INF_SIGNER_INFO_V1 PSP_INF_SIGNER_INFO;
#else // use version 2 signer info structure
typedef SP_INF_SIGNER_INFO_V2_A SP_INF_SIGNER_INFO_A;
typedef PSP_INF_SIGNER_INFO_V2_A PSP_INF_SIGNER_INFO_A;
typedef SP_INF_SIGNER_INFO_V2_W SP_INF_SIGNER_INFO_W;
typedef PSP_INF_SIGNER_INFO_V2_W PSP_INF_SIGNER_INFO_W;
typedef SP_INF_SIGNER_INFO_V2 SP_INF_SIGNER_INFO;
typedef PSP_INF_SIGNER_INFO_V2 PSP_INF_SIGNER_INFO;
#endif // use current version of signer info structure
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupVerifyInfFileA( SetupVerifyInfFileA(
__in PCSTR InfName, __in PCSTR InfName,
__in_opt PSP_ALTPLATFORM_INFO AltPlatformInfo, __in_opt PSP_ALTPLATFORM_INFO AltPlatformInfo,
__out PSP_INF_SIGNER_INFO_A InfSignerInfo __inout PSP_INF_SIGNER_INFO_A InfSignerInfo
); );
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupVerifyInfFileW( SetupVerifyInfFileW(
__in PCWSTR InfName, __in PCWSTR InfName,
__in_opt PSP_ALTPLATFORM_INFO AltPlatformInfo, __in_opt PSP_ALTPLATFORM_INFO AltPlatformInfo,
__out PSP_INF_SIGNER_INFO_W InfSignerInfo __inout PSP_INF_SIGNER_INFO_W InfSignerInfo
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupVerifyInfFile SetupVerifyInfFileW #define SetupVerifyInfFile SetupVerifyInfFileW
#else #else
#define SetupVerifyInfFile SetupVerifyInfFileA #define SetupVerifyInfFile SetupVerifyInfFileA
#endif #endif
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= 0x0501 #if _SETUPAPI_VER >= _WIN32_WINNT_WINXP
// //
// Flags for use by SetupDiGetCustomDeviceProperty // Flags for use by SetupDiGetCustomDeviceProperty
// //
#define DICUSTOMDEVPROP_MERGE_MULTISZ 0x00000001 #define DICUSTOMDEVPROP_MERGE_MULTISZ 0x00000001
WINSETUPAPI WINSETUPAPI
BOOL BOOL
WINAPI WINAPI
SetupDiGetCustomDevicePropertyA( SetupDiGetCustomDevicePropertyA(
skipping to change at line 6630 skipping to change at line 7222
__in DWORD PropertyBufferSize, __in DWORD PropertyBufferSize,
__out_opt PDWORD RequiredSize __out_opt PDWORD RequiredSize
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupDiGetCustomDeviceProperty SetupDiGetCustomDevicePropertyW #define SetupDiGetCustomDeviceProperty SetupDiGetCustomDevicePropertyW
#else #else
#define SetupDiGetCustomDeviceProperty SetupDiGetCustomDevicePropertyA #define SetupDiGetCustomDeviceProperty SetupDiGetCustomDevicePropertyA
#endif #endif
#endif // _SETUPAPI_VER >= 0x0501 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WINXP
#if _SETUPAPI_VER >= 0x0502 #if _SETUPAPI_VER >= _WIN32_WINNT_WS03
// //
// To configure WMI security for downlevel platforms where the [DDInstall.WMI] // To configure WMI security for downlevel platforms where the [DDInstall.WMI]
// section isn't natively supported by setupapi, a redistributable co-installer // section isn't natively supported by setupapi, a redistributable co-installer
// is supplied in the DDK for use on those platforms. // is supplied in the DDK for use on those platforms.
// //
// //
// Flags for use by SetupConfigureWmiFromInfSection // Flags for use by SetupConfigureWmiFromInfSection
// //
skipping to change at line 6669 skipping to change at line 7261
__in PCWSTR SectionName, __in PCWSTR SectionName,
__in DWORD Flags __in DWORD Flags
); );
#ifdef UNICODE #ifdef UNICODE
#define SetupConfigureWmiFromInfSection SetupConfigureWmiFromInfSectionW #define SetupConfigureWmiFromInfSection SetupConfigureWmiFromInfSectionW
#else #else
#define SetupConfigureWmiFromInfSection SetupConfigureWmiFromInfSectionA #define SetupConfigureWmiFromInfSection SetupConfigureWmiFromInfSectionA
#endif #endif
#endif // _SETUPAPI_VER >= 0x0502 #endif // _SETUPAPI_VER >= _WIN32_WINNT_WS03
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#include <poppack.h> #include <poppack.h>
#if defined (_MSC_VER) && (_MSC_VER >= 1200)
#pragma warning(pop)
#endif
#endif // _INC_SETUPAPI #endif // _INC_SETUPAPI
 End of changes. 140 change blocks. 
125 lines changed or deleted 753 lines changed or added

This html diff was produced by rfcdiff 1.41.