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