1534 lines
37 KiB
C
1534 lines
37 KiB
C
/*
|
|
* cfgmgr32.h
|
|
*
|
|
* PnP configuration manager
|
|
*
|
|
* This file is part of the w32api package.
|
|
*
|
|
* Contributors:
|
|
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
|
|
*
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
*
|
|
* This source code is offered for use in the public domain. You may
|
|
* use, modify or distribute it freely.
|
|
*
|
|
* This code is distributed in the hope that it will be useful but
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
|
* DISCLAIMED. This includes but is not limited to warranties of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
*/
|
|
|
|
#ifndef __CFGMGR32_H
|
|
#define __CFGMGR32_H
|
|
|
|
#if __GNUC__ >=3
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "ntddk.h"
|
|
|
|
#if defined(_CFGMGR32_)
|
|
#define CMAPI DECLSPEC_EXPORT
|
|
#else
|
|
#define CMAPI DECLSPEC_IMPORT
|
|
#endif
|
|
|
|
#include "cfg.h"
|
|
|
|
#include <pshpack1.h>
|
|
|
|
#define CR_SUCCESS 0x00000000
|
|
#define CR_DEFAULT 0x00000001
|
|
#define CR_OUT_OF_MEMORY 0x00000002
|
|
#define CR_INVALID_POINTER 0x00000003
|
|
#define CR_INVALID_FLAG 0x00000004
|
|
#define CR_INVALID_DEVNODE 0x00000005
|
|
#define CR_INVALID_DEVINST CR_INVALID_DEVNODE
|
|
#define CR_INVALID_RES_DES 0x00000006
|
|
#define CR_INVALID_LOG_CONF 0x00000007
|
|
#define CR_INVALID_ARBITRATOR 0x00000008
|
|
#define CR_INVALID_NODELIST 0x00000009
|
|
#define CR_DEVNODE_HAS_REQS 0x0000000A
|
|
#define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS
|
|
#define CR_INVALID_RESOURCEID 0x0000000B
|
|
#define CR_DLVXD_NOT_FOUND 0x0000000C
|
|
#define CR_NO_SUCH_DEVNODE 0x0000000D
|
|
#define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE
|
|
#define CR_NO_MORE_LOG_CONF 0x0000000E
|
|
#define CR_NO_MORE_RES_DES 0x0000000F
|
|
#define CR_ALREADY_SUCH_DEVNODE 0x00000010
|
|
#define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE
|
|
#define CR_INVALID_RANGE_LIST 0x00000011
|
|
#define CR_INVALID_RANGE 0x00000012
|
|
#define CR_FAILURE 0x00000013
|
|
#define CR_NO_SUCH_LOGICAL_DEV 0x00000014
|
|
#define CR_CREATE_BLOCKED 0x00000015
|
|
#define CR_NOT_SYSTEM_VM 0x00000016
|
|
#define CR_REMOVE_VETOED 0x00000017
|
|
#define CR_APM_VETOED 0x00000018
|
|
#define CR_INVALID_LOAD_TYPE 0x00000019
|
|
#define CR_BUFFER_SMALL 0x0000001A
|
|
#define CR_NO_ARBITRATOR 0x0000001B
|
|
#define CR_NO_REGISTRY_HANDLE 0x0000001C
|
|
#define CR_REGISTRY_ERROR 0x0000001D
|
|
#define CR_INVALID_DEVICE_ID 0x0000001E
|
|
#define CR_INVALID_DATA 0x0000001F
|
|
#define CR_INVALID_API 0x00000020
|
|
#define CR_DEVLOADER_NOT_READY 0x00000021
|
|
#define CR_NEED_RESTART 0x00000022
|
|
#define CR_NO_MORE_HW_PROFILES 0x00000023
|
|
#define CR_DEVICE_NOT_THERE 0x00000024
|
|
#define CR_NO_SUCH_VALUE 0x00000025
|
|
#define CR_WRONG_TYPE 0x00000026
|
|
#define CR_INVALID_PRIORITY 0x00000027
|
|
#define CR_NOT_DISABLEABLE 0x00000028
|
|
#define CR_FREE_RESOURCES 0x00000029
|
|
#define CR_QUERY_VETOED 0x0000002A
|
|
#define CR_CANT_SHARE_IRQ 0x0000002B
|
|
#define CR_NO_DEPENDENT 0x0000002C
|
|
#define CR_SAME_RESOURCES 0x0000002D
|
|
#define CR_NO_SUCH_REGISTRY_KEY 0x0000002E
|
|
#define CR_INVALID_MACHINENAME 0x0000002F
|
|
#define CR_REMOTE_COMM_FAILURE 0x00000030
|
|
#define CR_MACHINE_UNAVAILABLE 0x00000031
|
|
#define CR_NO_CM_SERVICES 0x00000032
|
|
#define CR_ACCESS_DENIED 0x00000033
|
|
#define CR_CALL_NOT_IMPLEMENTED 0x00000034
|
|
#define CR_INVALID_PROPERTY 0x00000035
|
|
#define CR_DEVICE_INTERFACE_ACTIVE 0x00000036
|
|
#define CR_NO_SUCH_DEVICE_INTERFACE 0x00000037
|
|
#define CR_INVALID_REFERENCE_STRING 0x00000038
|
|
#define CR_INVALID_CONFLICT_LIST 0x00000039
|
|
#define CR_INVALID_INDEX 0x0000003A
|
|
#define CR_INVALID_STRUCTURE_SIZE 0x0000003B
|
|
|
|
|
|
typedef DWORD RETURN_TYPE;
|
|
typedef RETURN_TYPE CONFIGRET;
|
|
|
|
typedef HANDLE HMACHINE;
|
|
typedef HMACHINE *PHMACHINE;
|
|
|
|
typedef DWORD_PTR RES_DES;
|
|
typedef RES_DES *PRES_DES;
|
|
|
|
typedef DWORD_PTR RANGE_ELEMENT;
|
|
typedef RANGE_ELEMENT *PRANGE_ELEMENT;
|
|
|
|
typedef ULONG_PTR CONFLICT_LIST;
|
|
typedef CONFLICT_LIST *PCONFLICT_LIST;
|
|
|
|
typedef DWORD_PTR LOG_CONF;
|
|
typedef LOG_CONF *PLOG_CONF;
|
|
|
|
typedef ULONG PRIORITY;
|
|
typedef PRIORITY *PPRIORITY;
|
|
|
|
typedef DWORD_PTR RANGE_LIST;
|
|
typedef RANGE_LIST *PRANGE_LIST;
|
|
|
|
typedef DWORD DEVNODE, DEVINST;
|
|
typedef DEVNODE *PDEVNODE, *PDEVINST;
|
|
|
|
typedef CHAR *DEVNODEID_A, *DEVINSTID_A;
|
|
typedef WCHAR *DEVNODEID_W, *DEVINSTID_W;
|
|
|
|
#ifdef UNICODE
|
|
typedef DEVNODEID_W DEVNODEID;
|
|
typedef DEVINSTID_W DEVINSTID;
|
|
#else
|
|
typedef DEVNODEID_A DEVNODEID;
|
|
typedef DEVINSTID_A DEVINSTID;
|
|
#endif
|
|
|
|
typedef ULONG REGDISPOSITION;
|
|
|
|
typedef ULONG RESOURCEID;
|
|
typedef RESOURCEID *PRESOURCEID;
|
|
|
|
#define CM_RESDES_WIDTH_DEFAULT 0x00000000
|
|
#define CM_RESDES_WIDTH_32 0x00000001
|
|
#define CM_RESDES_WIDTH_64 0x00000002
|
|
#define CM_RESDES_WIDTH_BITS 0x00000003
|
|
|
|
|
|
#define MAX_CONFIG_VALUE 9999
|
|
#define MAX_INSTANCE_VALUE 9999
|
|
|
|
#define MAX_DEVICE_ID_LEN 200
|
|
#define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
|
|
|
|
#define MAX_CLASS_NAME_LEN 32
|
|
#define MAX_GUID_STRING_LEN 39
|
|
#define MAX_PROFILE_LEN 80
|
|
|
|
|
|
#define ResType_All 0x00000000
|
|
#define ResType_None 0x00000000
|
|
#define ResType_Mem 0x00000001
|
|
#define ResType_IO 0x00000002
|
|
#define ResType_DMA 0x00000003
|
|
#define ResType_IRQ 0x00000004
|
|
#define ResType_DoNotUse 0x00000005
|
|
#define ResType_BusNumber 0x00000006
|
|
#define ResType_MAX 0x00000006
|
|
#define ResType_Ignored_Bit 0x00008000
|
|
#define ResType_ClassSpecific 0x0000FFFF
|
|
#define ResType_Reserved 0x00008000
|
|
#define ResType_DevicePrivate 0x00008001
|
|
#define ResType_PcCardConfig 0x00008002
|
|
#define ResType_MfCardConfig 0x00008003
|
|
|
|
#define CM_GETIDLIST_FILTER_NONE 0x00000000
|
|
#define CM_GETIDLIST_FILTER_ENUMERATOR 0x00000001
|
|
#define CM_GETIDLIST_FILTER_SERVICE 0x00000002
|
|
#define CM_GETIDLIST_FILTER_EJECTRELATIONS 0x00000004
|
|
#define CM_GETIDLIST_FILTER_REMOVALRELATIONS 0x00000008
|
|
#define CM_GETIDLIST_FILTER_POWERRELATIONS 0x00000010
|
|
#define CM_GETIDLIST_FILTER_BUSRELATIONS 0x00000020
|
|
#define CM_GETIDLIST_DONOTGENERATE 0x10000040
|
|
#define CM_GETIDLIST_FILTER_BITS 0x1000007F
|
|
|
|
#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT 0x00000000
|
|
#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES 0x00000001
|
|
#define CM_GET_DEVICE_INTERFACE_LIST_BITS 0x00000001
|
|
|
|
|
|
typedef struct BusNumber_Des_s {
|
|
DWORD BUSD_Count;
|
|
DWORD BUSD_Type;
|
|
DWORD BUSD_Flags;
|
|
ULONG BUSD_Alloc_Base;
|
|
ULONG BUSD_Alloc_End;
|
|
} BUSNUMBER_DES, *PBUSNUMBER_DES;
|
|
|
|
typedef struct BusNumber_Range_s {
|
|
ULONG BUSR_Min;
|
|
ULONG BUSR_Max;
|
|
ULONG BUSR_nBusNumbers;
|
|
ULONG BUSR_Flags;
|
|
} BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
|
|
|
|
#define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
|
|
|
|
typedef struct BusNumber_Resource_s {
|
|
BUSNUMBER_DES BusNumber_Header;
|
|
BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY];
|
|
} BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
|
|
|
|
typedef struct CS_Des_s {
|
|
DWORD CSD_SignatureLength;
|
|
DWORD CSD_LegacyDataOffset;
|
|
DWORD CSD_LegacyDataSize;
|
|
DWORD CSD_Flags;
|
|
GUID CSD_ClassGuid;
|
|
BYTE CSD_Signature[ANYSIZE_ARRAY];
|
|
} CS_DES, *PCS_DES;
|
|
|
|
typedef struct CS_Resource_s {
|
|
CS_DES CS_Header;
|
|
} CS_RESOURCE, *PCS_RESOURCE;
|
|
|
|
typedef struct DevPrivate_Des_s {
|
|
DWORD PD_Count;
|
|
DWORD PD_Type;
|
|
DWORD PD_Data1;
|
|
DWORD PD_Data2;
|
|
DWORD PD_Data3;
|
|
DWORD PD_Flags;
|
|
} DEVPRIVATE_DES, *PDEVPRIVATE_DES;
|
|
|
|
typedef struct DevPrivate_Range_s {
|
|
DWORD PR_Data1;
|
|
DWORD PR_Data2;
|
|
DWORD PR_Data3;
|
|
} DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
|
|
|
|
#define PType_Range sizeof(DEVPRIVATE_RANGE)
|
|
|
|
typedef struct DevPrivate_Resource_s {
|
|
DEVPRIVATE_DES PRV_Header;
|
|
DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY];
|
|
} DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
|
|
|
|
/* DMA_DES.DD_Flags constants and masks */
|
|
#define mDD_Width 0x3
|
|
#define fDD_BYTE 0x0
|
|
#define fDD_WORD 0x1
|
|
#define fDD_DWORD 0x2
|
|
#define fDD_BYTE_AND_WORD 0x3
|
|
|
|
#define mDD_BusMaster 0x4
|
|
#define fDD_NoBusMaster 0x0
|
|
#define fDD_BusMaster 0x4
|
|
|
|
#define mDD_Type 0x18
|
|
#define fDD_TypeStandard 0x00
|
|
#define fDD_TypeA 0x08
|
|
#define fDD_TypeB 0x10
|
|
#define fDD_TypeF 0x18
|
|
|
|
typedef struct DMA_Des_s {
|
|
DWORD DD_Count;
|
|
DWORD DD_Type;
|
|
DWORD DD_Flags;
|
|
ULONG DD_Alloc_Chan;
|
|
} DMA_DES, *PDMA_DES;
|
|
|
|
typedef struct DMA_Range_s {
|
|
ULONG DR_Min;
|
|
ULONG DR_Max;
|
|
ULONG DR_Flags;
|
|
} DMA_RANGE, *PDMA_RANGE;
|
|
|
|
#define DType_Range sizeof(DMA_RANGE)
|
|
|
|
typedef struct DMA_Resource_s {
|
|
DMA_DES DMA_Header;
|
|
DMA_RANGE DMA_Data[ANYSIZE_ARRAY];
|
|
} DMA_RESOURCE, *PDMA_RESOURCE;
|
|
|
|
/* IO_DES.Type constants and masks */
|
|
#define fIOD_PortType 0x1
|
|
#define fIOD_Memory 0x0
|
|
#define fIOD_IO 0x1
|
|
#define fIOD_DECODE 0x00fc
|
|
#define fIOD_10_BIT_DECODE 0x0004
|
|
#define fIOD_12_BIT_DECODE 0x0008
|
|
#define fIOD_16_BIT_DECODE 0x0010
|
|
#define fIOD_POSITIVE_DECODE 0x0020
|
|
#define fIOD_PASSIVE_DECODE 0x0040
|
|
#define fIOD_WINDOW_DECODE 0x0080
|
|
|
|
typedef struct IO_Des_s {
|
|
DWORD IOD_Count;
|
|
DWORD IOD_Type;
|
|
DWORDLONG IOD_Alloc_Base;
|
|
DWORDLONG IOD_Alloc_End;
|
|
DWORD IOD_DesFlags;
|
|
} IO_DES, *PIO_DES;
|
|
|
|
/* IO_RANGE.IOR_Alias constants */
|
|
#define IO_ALIAS_10_BIT_DECODE 0x00000004
|
|
#define IO_ALIAS_12_BIT_DECODE 0x00000010
|
|
#define IO_ALIAS_16_BIT_DECODE 0x00000000
|
|
#define IO_ALIAS_POSITIVE_DECODE 0x000000FF
|
|
|
|
typedef struct IO_Range_s {
|
|
DWORDLONG IOR_Align;
|
|
DWORD IOR_nPorts;
|
|
DWORDLONG IOR_Min;
|
|
DWORDLONG IOR_Max;
|
|
DWORD IOR_RangeFlags;
|
|
DWORDLONG IOR_Alias;
|
|
} IO_RANGE, *PIO_RANGE;
|
|
|
|
#define IOType_Range sizeof(IO_RANGE)
|
|
|
|
typedef struct IO_Resource_s {
|
|
IO_DES IO_Header;
|
|
IO_RANGE IO_Data[ANYSIZE_ARRAY];
|
|
} IO_RESOURCE, *PIO_RESOURCE;
|
|
|
|
/* IRQ_DES.IRQD_flags constants */
|
|
#define mIRQD_Share 0x1
|
|
#define fIRQD_Exclusive 0x0
|
|
#define fIRQD_Share 0x1
|
|
|
|
#define fIRQD_Share_Bit 0
|
|
#define fIRQD_Level_Bit 1
|
|
|
|
#define mIRQD_Edge_Level 0x2
|
|
#define fIRQD_Level 0x0
|
|
#define fIRQD_Edge 0x2
|
|
|
|
typedef struct IRQ_Des_32_s {
|
|
DWORD IRQD_Count;
|
|
DWORD IRQD_Type;
|
|
DWORD IRQD_Flags;
|
|
ULONG IRQD_Alloc_Num;
|
|
ULONG32 IRQD_Affinity;
|
|
} IRQ_DES_32, *PIRQ_DES_32;
|
|
|
|
typedef struct IRQ_Des_64_s {
|
|
DWORD IRQD_Count;
|
|
DWORD IRQD_Type;
|
|
DWORD IRQD_Flags;
|
|
ULONG IRQD_Alloc_Num;
|
|
ULONG64 IRQD_Affinity;
|
|
} IRQ_DES_64, *PIRQ_DES_64;
|
|
|
|
#ifdef _WIN64
|
|
typedef IRQ_DES_64 IRQ_DES;
|
|
typedef PIRQ_DES_64 PIRQ_DES;
|
|
#else
|
|
typedef IRQ_DES_32 IRQ_DES;
|
|
typedef PIRQ_DES_32 PIRQ_DES;
|
|
#endif
|
|
|
|
typedef struct IRQ_Range_s {
|
|
ULONG IRQR_Min;
|
|
ULONG IRQR_Max;
|
|
ULONG IRQR_Flags;
|
|
} IRQ_RANGE, *PIRQ_RANGE;
|
|
|
|
#define IRQType_Range sizeof(IRQ_RANGE)
|
|
|
|
typedef struct IRQ_Resource_s {
|
|
IRQ_DES IRQ_Header;
|
|
IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
|
|
} IRQ_RESOURCE, *PIRQ_RESOURCE;
|
|
|
|
/* MEM_DES.MD_Flags constants */
|
|
#define mMD_MemoryType 0x1
|
|
#define fMD_MemoryType mMD_MemoryType
|
|
#define fMD_ROM 0x0
|
|
#define fMD_RAM 0x1
|
|
|
|
#define mMD_32_24 0x2
|
|
#define fMD_32_24 mMD_32_24
|
|
#define fMD_24 0x0
|
|
#define fMD_32 0x2
|
|
|
|
#define mMD_Prefetchable 0x4
|
|
#define fMD_Prefetchable mMD_Prefetchable
|
|
#define fMD_Pref mMD_Prefetchable
|
|
#define fMD_PrefetchDisallowed 0x0
|
|
#define fMD_PrefetchAllowed 0x4
|
|
|
|
#define mMD_Readable 0x8
|
|
#define fMD_Readable mMD_Readable
|
|
#define fMD_ReadAllowed 0x0
|
|
#define fMD_ReadDisallowed 0x8
|
|
|
|
#define mMD_CombinedWrite 0x10
|
|
#define fMD_CombinedWrite mMD_CombinedWrite
|
|
#define fMD_CombinedWriteDisallowed 0x0
|
|
#define fMD_CombinedWriteAllowed 0x10
|
|
|
|
#define mMD_Cacheable 0x20
|
|
#define fMD_NonCacheable 0x0
|
|
#define fMD_Cacheable 0x20
|
|
|
|
typedef struct Mem_Des_s {
|
|
DWORD MD_Count;
|
|
DWORD MD_Type;
|
|
DWORDLONG MD_Alloc_Base;
|
|
DWORDLONG MD_Alloc_End;
|
|
DWORD MD_Flags;
|
|
DWORD MD_Reserved;
|
|
} MEM_DES, *PMEM_DES;
|
|
|
|
typedef struct Mem_Range_s {
|
|
DWORDLONG MR_Align;
|
|
ULONG MR_nBytes;
|
|
DWORDLONG MR_Min;
|
|
DWORDLONG MR_Max;
|
|
DWORD MR_Flags;
|
|
DWORD MR_Reserved;
|
|
} MEM_RANGE, *PMEM_RANGE;
|
|
|
|
#define MType_Range sizeof(MEM_RANGE)
|
|
|
|
typedef struct Mem_Resource_s {
|
|
MEM_DES MEM_Header;
|
|
MEM_RANGE MEM_Data[ANYSIZE_ARRAY];
|
|
} MEM_RESOURCE, *PMEM_RESOURCE;
|
|
|
|
/* MFCARD_DES.PMF_Flags constants */
|
|
#define fPMF_AUDIO_ENABLE 0x8
|
|
#define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE
|
|
|
|
typedef struct MfCard_Des_s {
|
|
DWORD PMF_Count;
|
|
DWORD PMF_Type;
|
|
DWORD PMF_Flags;
|
|
BYTE PMF_ConfigOptions;
|
|
BYTE PMF_IoResourceIndex;
|
|
BYTE PMF_Reserved[2];
|
|
DWORD PMF_ConfigRegisterBase;
|
|
} MFCARD_DES, *PMFCARD_DES;
|
|
|
|
typedef struct MfCard_Resource_s {
|
|
MFCARD_DES MfCard_Header;
|
|
} MFCARD_RESOURCE, *PMFCARD_RESOURCE;
|
|
|
|
/* PCCARD_DES.PCD_Flags constants */
|
|
|
|
typedef struct PcCard_Des_s {
|
|
DWORD PCD_Count;
|
|
DWORD PCD_Type;
|
|
DWORD PCD_Flags;
|
|
BYTE PCD_ConfigIndex;
|
|
BYTE PCD_Reserved[3];
|
|
DWORD PCD_MemoryCardBase1;
|
|
DWORD PCD_MemoryCardBase2;
|
|
} PCCARD_DES, *PPCCARD_DES;
|
|
|
|
#define mPCD_IO_8_16 0x1
|
|
#define fPCD_IO_8 0x0
|
|
#define fPCD_IO_16 0x1
|
|
#define mPCD_MEM_8_16 0x2
|
|
#define fPCD_MEM_8 0x0
|
|
#define fPCD_MEM_16 0x2
|
|
#define mPCD_MEM_A_C 0xC
|
|
#define fPCD_MEM1_A 0x4
|
|
#define fPCD_MEM2_A 0x8
|
|
#define fPCD_IO_ZW_8 0x10
|
|
#define fPCD_IO_SRC_16 0x20
|
|
#define fPCD_IO_WS_16 0x40
|
|
#define mPCD_MEM_WS 0x300
|
|
#define fPCD_MEM_WS_ONE 0x100
|
|
#define fPCD_MEM_WS_TWO 0x200
|
|
#define fPCD_MEM_WS_THREE 0x300
|
|
|
|
#define fPCD_MEM_A 0x4
|
|
|
|
#define fPCD_ATTRIBUTES_PER_WINDOW 0x8000
|
|
|
|
#define fPCD_IO1_16 0x00010000
|
|
#define fPCD_IO1_ZW_8 0x00020000
|
|
#define fPCD_IO1_SRC_16 0x00040000
|
|
#define fPCD_IO1_WS_16 0x00080000
|
|
|
|
#define fPCD_IO2_16 0x00100000
|
|
#define fPCD_IO2_ZW_8 0x00200000
|
|
#define fPCD_IO2_SRC_16 0x00400000
|
|
#define fPCD_IO2_WS_16 0x00800000
|
|
|
|
#define mPCD_MEM1_WS 0x03000000
|
|
#define fPCD_MEM1_WS_ONE 0x01000000
|
|
#define fPCD_MEM1_WS_TWO 0x02000000
|
|
#define fPCD_MEM1_WS_THREE 0x03000000
|
|
#define fPCD_MEM1_16 0x04000000
|
|
|
|
#define mPCD_MEM2_WS 0x30000000
|
|
#define fPCD_MEM2_WS_ONE 0x10000000
|
|
#define fPCD_MEM2_WS_TWO 0x20000000
|
|
#define fPCD_MEM2_WS_THREE 0x30000000
|
|
#define fPCD_MEM2_16 0x40000000
|
|
|
|
#define PCD_MAX_MEMORY 2
|
|
#define PCD_MAX_IO 2
|
|
|
|
typedef struct PcCard_Resource_s {
|
|
PCCARD_DES PcCard_Header;
|
|
} PCCARD_RESOURCE, *PPCCARD_RESOURCE;
|
|
|
|
|
|
/* CONFLICT_DETAILS.CD.ulMask constants */
|
|
#define CM_CDMASK_DEVINST 0x00000001
|
|
#define CM_CDMASK_RESDES 0x00000002
|
|
#define CM_CDMASK_FLAGS 0x00000004
|
|
#define CM_CDMASK_DESCRIPTION 0x00000008
|
|
#define CM_CDMASK_VALID 0x0000000F
|
|
|
|
/* CONFLICT_DETAILS.CD.ulFlags constants */
|
|
#define CM_CDFLAGS_DRIVER 0x00000001
|
|
#define CM_CDFLAGS_ROOT_OWNED 0x00000002
|
|
#define CM_CDFLAGS_RESERVED 0x00000004
|
|
|
|
typedef struct _CONFLICT_DETAILS_A {
|
|
ULONG CD_ulSize;
|
|
ULONG CD_ulMask;
|
|
DEVINST CD_dnDevInst;
|
|
RES_DES CD_rdResDes;
|
|
ULONG CD_ulFlags;
|
|
CHAR CD_szDescription[MAX_PATH];
|
|
} CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A;
|
|
|
|
typedef struct _CONFLICT_DETAILS_W {
|
|
ULONG CD_ulSize;
|
|
ULONG CD_ulMask;
|
|
DEVINST CD_dnDevInst;
|
|
RES_DES CD_rdResDes;
|
|
ULONG CD_ulFlags;
|
|
WCHAR CD_szDescription[MAX_PATH];
|
|
} CONFLICT_DETAILS_W , *PCONFLICT_DETAILS_W;
|
|
|
|
#ifdef UNICODE
|
|
typedef CONFLICT_DETAILS_W CONFLICT_DETAILS;
|
|
typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS;
|
|
#else
|
|
typedef CONFLICT_DETAILS_A CONFLICT_DETAILS;
|
|
typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS;
|
|
#endif
|
|
|
|
|
|
|
|
/* CM_Add_Empty_Log_Conf.ulFlags constants */
|
|
#define PRIORITY_EQUAL_FIRST 0x00000008
|
|
#define PRIORITY_EQUAL_LAST 0x00000000
|
|
#define PRIORITY_BIT 0x00000008
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Add_Empty_Log_Conf(
|
|
OUT PLOG_CONF plcLogConf,
|
|
IN DEVINST dnDevInst,
|
|
IN PRIORITY Priority,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Add_Empty_Log_Conf_Ex(
|
|
OUT PLOG_CONF plcLogConf,
|
|
IN DEVINST dnDevInst,
|
|
IN PRIORITY Priority,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
/* CM_Add_ID.ulFlags constants */
|
|
#define CM_ADD_ID_HARDWARE 0x00000000
|
|
#define CM_ADD_ID_COMPATIBLE 0x00000001
|
|
#define CM_ADD_ID_BITS 0x00000001
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Add_IDA(
|
|
IN DEVINST dnDevInst,
|
|
IN PSTR pszID,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Add_ID_ExA(
|
|
IN DEVINST dnDevInst,
|
|
IN PSTR pszID,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Add_ID_ExW(
|
|
IN DEVINST dnDevInst,
|
|
IN PWSTR pszID,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Add_IDW(
|
|
IN DEVINST dnDevInst,
|
|
IN PWSTR pszID,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
#ifdef UNICODE
|
|
#define CM_Add_ID CM_Add_IDW
|
|
#define CM_Add_ID_Ex CM_Add_ID_ExW
|
|
#else
|
|
#define CM_Add_ID CM_Add_IDA
|
|
#define CM_Add_ID_Ex CM_Add_ID_ExA
|
|
#endif /* UNICODE */
|
|
|
|
/* FIXME: Obsolete CM_Add_Range */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Add_Res_Des(
|
|
OUT PRES_DES prdResDes,
|
|
IN LOG_CONF lcLogConf,
|
|
IN RESOURCEID ResourceID,
|
|
IN PCVOID ResourceData,
|
|
IN ULONG ResourceLen,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Add_Res_Des_Ex(
|
|
OUT PRES_DES prdResDes,
|
|
IN LOG_CONF lcLogConf,
|
|
IN RESOURCEID ResourceID,
|
|
IN PCVOID ResourceData,
|
|
IN ULONG ResourceLen,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Connect_MachineA(
|
|
IN PCSTR UNCServerName,
|
|
OUT PHMACHINE phMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Connect_MachineW(
|
|
IN PCWSTR UNCServerName,
|
|
OUT PHMACHINE phMachine);
|
|
|
|
#ifdef UNICODE
|
|
#define CM_Connect_Machine CM_Connect_MachineW
|
|
#else
|
|
#define CM_Connect_Machine CM_Connect_MachineA
|
|
#endif /* UNICODE */
|
|
|
|
/* FIXME: Obsolete CM_Create_DevNode */
|
|
/* FIXME: Obsolete CM_Create_DevNodeEx */
|
|
/* FIXME: Obsolete CM_Create_Range_List */
|
|
/* FIXME: Obsolete CM_Delete_Class_Key */
|
|
/* FIXME: Obsolete CM_Delete_Class_Key_Ex */
|
|
/* FIXME: Obsolete CM_Delete_DevNode_Key */
|
|
/* FIXME: Obsolete CM_Delete_DevNode_Key_Ex */
|
|
/* FIXME: Obsolete CM_Delete_Range */
|
|
/* FIXME: Obsolete CM_Detected_Resource_Conflict */
|
|
/* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
|
|
/* FIXME: Obsolete CM_Disable_DevNode */
|
|
/* FIXME: Obsolete CM_Disable_DevNodeEx */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Disconnect_Machine(
|
|
IN HMACHINE hMachine);
|
|
|
|
/* FIXME: Obsolete CM_Enable_DevNode */
|
|
/* FIXME: Obsolete CM_Enable_DevNodeEx */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Enumerate_Classes(
|
|
IN ULONG ulClassIndex,
|
|
OUT LPGUID ClassGuid,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Enumerate_Classes_Ex(
|
|
IN ULONG ulClassIndex,
|
|
OUT LPGUID ClassGuid,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Enumerate_EnumeratorsA(
|
|
IN ULONG ulEnumIndex,
|
|
OUT PCHAR Buffer,
|
|
IN OUT PULONG pulLength,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Enumerate_Enumerators_ExA(
|
|
IN ULONG ulEnumIndex,
|
|
OUT PCHAR Buffer,
|
|
IN OUT PULONG pulLength,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Enumerate_Enumerators_ExW(
|
|
IN ULONG ulEnumIndex,
|
|
OUT PWCHAR Buffer,
|
|
IN OUT PULONG pulLength,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Enumerate_EnumeratorsW(
|
|
IN ULONG ulEnumIndex,
|
|
OUT PWCHAR Buffer,
|
|
IN OUT PULONG pulLength,
|
|
IN ULONG ulFlags);
|
|
|
|
#ifdef UNICODE
|
|
#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
|
|
#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
|
|
#else
|
|
#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
|
|
#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
|
|
#endif /* UNICODE */
|
|
|
|
/* FIXME: Obsolete CM_Find_Range */
|
|
/* FIXME: Obsolete CM_First_Range */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Free_Log_Conf(
|
|
IN LOG_CONF lcLogConfToBeFreed,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Free_Log_Conf_Ex(
|
|
IN LOG_CONF lcLogConfToBeFreed,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Free_Log_Conf_Handle(
|
|
IN LOG_CONF lcLogConf);
|
|
|
|
/* FIXME: Obsolete CM_Free_Range_List */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Free_Res_Des(
|
|
OUT PRES_DES prdResDes,
|
|
IN RES_DES rdResDes,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Free_Res_Des_Ex(
|
|
OUT PRES_DES prdResDes,
|
|
IN RES_DES rdResDes,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Free_Res_Des_Handle(
|
|
IN RES_DES rdResDes);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Free_Resource_Conflict_Handle(
|
|
IN CONFLICT_LIST clConflictList);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Child(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Child_Ex(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
/* FIXME: Obsolete CM_Get_Class_Name */
|
|
/* FIXME: Obsolete CM_Get_Class_Name_Ex */
|
|
/* FIXME: Obsolete CM_Get_Class_Key_Name */
|
|
/* FIXME: Obsolete CM_Get_Class_Key_Name_Ex */
|
|
/* FIXME: Obsolete CM_Get_Class_Registry_Property */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Depth(
|
|
OUT PULONG pulDepth,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Depth_Ex(
|
|
OUT PULONG pulDepth,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_IDA(
|
|
IN DEVINST dnDevInst,
|
|
OUT PCHAR Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_ExA(
|
|
IN DEVINST dnDevInst,
|
|
OUT PCHAR Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_ExW(
|
|
IN DEVINST dnDevInst,
|
|
OUT PWCHAR Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_IDW(
|
|
IN DEVINST dnDevInst,
|
|
OUT PWCHAR Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags);
|
|
|
|
#ifdef UNICODE
|
|
#define CM_Get_Device_ID CM_Get_Device_IDW
|
|
#define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
|
|
#else
|
|
#define CM_Get_Device_ID CM_Get_Device_IDA
|
|
#define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
|
|
#endif /* UNICODE */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_ListA(
|
|
IN PCSTR pszFilter, OPTIONAL
|
|
OUT PCHAR Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_List_ExA(
|
|
IN PCSTR pszFilter, OPTIONAL
|
|
OUT PCHAR Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_List_ExW(
|
|
IN PCWSTR pszFilter, OPTIONAL
|
|
OUT PWCHAR Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_ListW(
|
|
IN PCWSTR pszFilter, OPTIONAL
|
|
OUT PWCHAR Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags);
|
|
|
|
#ifdef UNICODE
|
|
#define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
|
|
#define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
|
|
#else
|
|
#define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
|
|
#define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
|
|
#endif /* UNICODE */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_List_SizeA(
|
|
OUT PULONG pulLen,
|
|
IN PCSTR pszFilter, OPTIONAL
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_List_Size_ExA(
|
|
OUT PULONG pulLen,
|
|
IN PCSTR pszFilter, OPTIONAL
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_List_Size_ExW(
|
|
OUT PULONG pulLen,
|
|
IN PCWSTR pszFilter, OPTIONAL
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_List_SizeW(
|
|
OUT PULONG pulLen,
|
|
IN PCWSTR pszFilter, OPTIONAL
|
|
IN ULONG ulFlags);
|
|
|
|
#ifdef UNICODE
|
|
#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
|
|
#else
|
|
#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
|
|
#endif /* UNICODE */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_Size(
|
|
OUT PULONG pulLen,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Device_ID_Size_Ex(
|
|
OUT PULONG pulLen,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
/* FIXME: Obsolete CM_Get_Device_Interface_Alias */
|
|
/* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
|
|
/* FIXME: Obsolete CM_Get_Device_Interface_List */
|
|
/* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
|
|
/* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
|
|
/* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
|
|
/* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
|
|
/* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
|
|
/* FIXME: Obsolete CM_Get_DevNode_Registry_Property */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_DevNode_Status(
|
|
OUT PULONG pulStatus,
|
|
OUT PULONG pulProblemNumber,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_DevNode_Status_Ex(
|
|
OUT PULONG pulStatus,
|
|
OUT PULONG pulProblemNumber,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
#define CM_Get_DevInst_Status CM_Get_DevNode_Status
|
|
#define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
|
|
|
|
/* CM_Get_First_Log_Conf.ulFlags constants */
|
|
#define BASIC_LOG_CONF 0x00000000 /* Specifies the req list. */
|
|
#define FILTERED_LOG_CONF 0x00000001 /* Specifies the filtered req list. */
|
|
#define ALLOC_LOG_CONF 0x00000002 /* Specifies the Alloc Element. */
|
|
#define BOOT_LOG_CONF 0x00000003 /* Specifies the RM Alloc Element. */
|
|
#define FORCED_LOG_CONF 0x00000004 /* Specifies the Forced Log Conf */
|
|
#define OVERRIDE_LOG_CONF 0x00000005 /* Specifies the Override req list. */
|
|
#define NUM_LOG_CONF 0x00000006 /* Number of Log Conf type */
|
|
#define LOG_CONF_BITS 0x00000007 /* The bits of the log conf type. */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_First_Log_Conf(
|
|
OUT PLOG_CONF plcLogConf, OPTIONAL
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_First_Log_Conf_Ex(
|
|
OUT PLOG_CONF plcLogConf, OPTIONAL
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
/* FIXME: Obsolete CM_Get_Global_State */
|
|
/* FIXME: Obsolete CM_Get_Global_State_Ex */
|
|
/* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
|
|
/* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
|
|
/* FIXME: Obsolete CM_Get_HW_Prof_Flags */
|
|
/* FIXME: Obsolete CM_Get_HW_Prof_Flags_Ex */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Log_Conf_Priority(
|
|
IN LOG_CONF lcLogConf,
|
|
OUT PPRIORITY pPriority,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Log_Conf_Priority_Ex(
|
|
IN LOG_CONF lcLogConf,
|
|
OUT PPRIORITY pPriority,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Next_Log_Conf(
|
|
OUT PLOG_CONF plcLogConf, OPTIONAL
|
|
IN LOG_CONF lcLogConf,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Next_Log_Conf_Ex(
|
|
OUT PLOG_CONF plcLogConf, OPTIONAL
|
|
IN LOG_CONF lcLogConf,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Next_Res_Des(
|
|
OUT PRES_DES prdResDes,
|
|
IN RES_DES rdResDes,
|
|
IN RESOURCEID ForResource,
|
|
OUT PRESOURCEID pResourceID,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Next_Res_Des_Ex(
|
|
OUT PRES_DES prdResDes,
|
|
IN RES_DES rdResDes,
|
|
IN RESOURCEID ForResource,
|
|
OUT PRESOURCEID pResourceID,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Parent(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Parent_Ex(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Res_Des_Data(
|
|
IN RES_DES rdResDes,
|
|
OUT PVOID Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Res_Des_Data_Ex(
|
|
IN RES_DES rdResDes,
|
|
OUT PVOID Buffer,
|
|
IN ULONG BufferLen,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Res_Des_Data_Size(
|
|
OUT PULONG pulSize,
|
|
IN RES_DES rdResDes,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Res_Des_Data_Size_Ex(
|
|
OUT PULONG pulSize,
|
|
IN RES_DES rdResDes,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Resource_Conflict_Count(
|
|
IN CONFLICT_LIST clConflictList,
|
|
OUT PULONG pulCount);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Resource_Conflict_DetailsA(
|
|
IN CONFLICT_LIST clConflictList,
|
|
IN ULONG ulIndex,
|
|
IN OUT PCONFLICT_DETAILS_A pConflictDetails);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Resource_Conflict_DetailsW(
|
|
IN CONFLICT_LIST clConflictList,
|
|
IN ULONG ulIndex,
|
|
IN OUT PCONFLICT_DETAILS_W pConflictDetails);
|
|
|
|
#ifdef UNICODE
|
|
#define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
|
|
#else
|
|
#define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
|
|
#endif /* UNICODE */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Sibling(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINST DevInst,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Get_Sibling_Ex(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINST DevInst,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
WORD
|
|
WINAPI
|
|
CM_Get_Version(
|
|
VOID);
|
|
|
|
CMAPI
|
|
WORD
|
|
WINAPI
|
|
CM_Get_Version_Ex(
|
|
IN HMACHINE hMachine);
|
|
|
|
/* FIXME: Obsolete CM_Intersect_Range_List */
|
|
/* FIXME: Obsolete CM_Invert_Range_List */
|
|
/* FIXME: Obsolete CM_Is_Dock_Station_Present */
|
|
/* FIXME: Obsolete CM_Is_Dock_Station_Present_Ex */
|
|
|
|
/* CM_Locate_DevNode.ulFlags constants */
|
|
#define CM_LOCATE_DEVNODE_NORMAL 0x00000000
|
|
#define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
|
|
#define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
|
|
#define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
|
|
#define CM_LOCATE_DEVNODE_BITS 0x00000007
|
|
|
|
#define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
|
|
#define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
|
|
#define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
|
|
#define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
|
|
#define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Locate_DevNodeA(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINSTID_A pDeviceID, OPTIONAL
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Locate_DevNode_ExA(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINSTID_A pDeviceID, OPTIONAL
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Locate_DevNode_ExW(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINSTID_W pDeviceID, OPTIONAL
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Locate_DevNodeW(
|
|
OUT PDEVINST pdnDevInst,
|
|
IN DEVINSTID_W pDeviceID, OPTIONAL
|
|
IN ULONG ulFlags);
|
|
|
|
#define CM_Locate_DevInstA CM_Locate_DevNodeA
|
|
#define CM_Locate_DevInstW CM_Locate_DevNodeW
|
|
#define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
|
|
#define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
|
|
|
|
#ifdef UNICODE
|
|
#define CM_Locate_DevNode CM_Locate_DevNodeW
|
|
#define CM_Locate_DevInst CM_Locate_DevNodeW
|
|
#define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
|
|
#define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
|
|
#else
|
|
#define CM_Locate_DevNode CM_Locate_DevNodeA
|
|
#define CM_Locate_DevInst CM_Locate_DevNodeA
|
|
#define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
|
|
#define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
|
|
#endif /* UNICODE */
|
|
|
|
/* FIXME: Obsolete CM_Merge_Range_List */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Modify_Res_Des(
|
|
OUT PRES_DES prdResDes,
|
|
IN RES_DES rdResDes,
|
|
IN RESOURCEID ResourceID,
|
|
IN PCVOID ResourceData,
|
|
IN ULONG ResourceLen,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Modify_Res_Des_Ex(
|
|
OUT PRES_DES prdResDes,
|
|
IN RES_DES rdResDes,
|
|
IN RESOURCEID ResourceID,
|
|
IN PCVOID ResourceData,
|
|
IN ULONG ResourceLen,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
/* FIXME: Obsolete CM_Move_DevNode */
|
|
/* FIXME: Obsolete CM_Move_DevNode_Ex */
|
|
/* FIXME: Obsolete CM_Next_Range */
|
|
/* FIXME: Obsolete CM_Open_Class_Key */
|
|
/* FIXME: Obsolete CM_Open_Class_Key_Ex */
|
|
/* FIXME: Obsolete CM_Open_DevNode_Key */
|
|
/* FIXME: Obsolete CM_Open_DevNode_Key_Ex */
|
|
|
|
/* CM_Query_And_Remove_SubTree.ulFlags constants */
|
|
#define CM_REMOVE_UI_OK 0x00000000
|
|
#define CM_REMOVE_UI_NOT_OK 0x00000001
|
|
#define CM_REMOVE_NO_RESTART 0x00000002
|
|
#define CM_REMOVE_BITS 0x00000003
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Query_And_Remove_SubTreeA(
|
|
IN DEVINST dnAncestor,
|
|
OUT PPNP_VETO_TYPE pVetoType,
|
|
OUT LPSTR pszVetoName,
|
|
IN ULONG ulNameLength,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Query_And_Remove_SubTreeW(
|
|
IN DEVINST dnAncestor,
|
|
OUT PPNP_VETO_TYPE pVetoType,
|
|
OUT LPWSTR pszVetoName,
|
|
IN ULONG ulNameLength,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Query_And_Remove_SubTree_ExA(
|
|
IN DEVINST dnAncestor,
|
|
OUT PPNP_VETO_TYPE pVetoType,
|
|
OUT LPSTR pszVetoName,
|
|
IN ULONG ulNameLength,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Query_And_Remove_SubTree_ExW(
|
|
IN DEVINST dnAncestor,
|
|
OUT PPNP_VETO_TYPE pVetoType,
|
|
OUT LPWSTR pszVetoName,
|
|
IN ULONG ulNameLength,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
/* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
|
|
/* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
|
|
/* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
|
|
/* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
|
|
/* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
|
|
/* FIXME: Obsolete CM_Query_Remove_SubTree */
|
|
/* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Query_Resource_Conflict_List(
|
|
OUT PCONFLICT_LIST pclConflictList,
|
|
IN DEVINST dnDevInst,
|
|
IN RESOURCEID ResourceID,
|
|
IN PCVOID ResourceData,
|
|
IN ULONG ResourceLen,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
/* CM_Reenumerate_DevNode.ulFlags constants */
|
|
#define CM_REENUMERATE_NORMAL 0x00000000
|
|
#define CM_REENUMERATE_SYNCHRONOUS 0x00000001
|
|
#define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
|
|
#define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
|
|
#define CM_REENUMERATE_BITS 0x00000007
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Reenumerate_DevNode(
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Reenumerate_DevNode_Ex(
|
|
IN DEVINST dnDevInst,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
#define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
|
|
#define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
|
|
|
|
/* FIXME: Obsolete CM_Register_Device_Driver */
|
|
/* FIXME: Obsolete CM_Register_Device_Driver_Ex */
|
|
/* FIXME: Obsolete CM_Register_Device_Interface */
|
|
/* FIXME: Obsolete CM_Register_Device_Interface_Ex */
|
|
/* FIXME: Obsolete CM_Remove_SubTree */
|
|
/* FIXME: Obsolete CM_Remove_SubTree_Ex */
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Request_Device_EjectA(
|
|
IN DEVINST dnDevInst,
|
|
OUT PPNP_VETO_TYPE pVetoType,
|
|
OUT LPSTR pszVetoName,
|
|
IN ULONG ulNameLength,
|
|
IN ULONG ulFlags);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Request_Device_Eject_ExW(
|
|
IN DEVINST dnDevInst,
|
|
OUT PPNP_VETO_TYPE pVetoType,
|
|
OUT LPWSTR pszVetoName,
|
|
IN ULONG ulNameLength,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Request_Device_Eject_ExA(
|
|
IN DEVINST dnDevInst,
|
|
OUT PPNP_VETO_TYPE pVetoType,
|
|
OUT LPSTR pszVetoName,
|
|
IN ULONG ulNameLength,
|
|
IN ULONG ulFlags,
|
|
IN HMACHINE hMachine);
|
|
|
|
CMAPI
|
|
CONFIGRET
|
|
WINAPI
|
|
CM_Request_Device_EjectW(
|
|
IN DEVINST dnDevInst,
|
|
OUT PPNP_VETO_TYPE pVetoType,
|
|
OUT LPWSTR pszVetoName,
|
|
IN ULONG ulNameLength,
|
|
IN ULONG ulFlags);
|
|
|
|
#ifdef UNICODE
|
|
#define CM_Request_Device_Eject CM_Request_Device_EjectW
|
|
#define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
|
|
#else
|
|
#define CM_Request_Device_Eject CM_Request_Device_EjectA
|
|
#define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
|
|
#endif /* UNICODE */
|
|
|
|
/* FIXME: Obsolete CM_Request_Eject_PC */
|
|
/* FIXME: Obsolete CM_Request_Eject_PC_Ex */
|
|
/* FIXME: Obsolete CM_Run_Detection */
|
|
/* FIXME: Obsolete CM_Run_Detection_Ex */
|
|
/* FIXME: Obsolete CM_Set_Class_Registry_Property */
|
|
/* FIXME: Obsolete CM_Set_DevNode_Problem */
|
|
/* FIXME: Obsolete CM_Set_DevNode_Problem_Ex */
|
|
/* FIXME: Obsolete CM_Set_DevNode_Registry_Property */
|
|
/* FIXME: Obsolete CM_Set_DevNode_Registry_Property_Ex */
|
|
/* FIXME: Obsolete CM_Set_HW_Prof */
|
|
/* FIXME: Obsolete CM_Set_HW_Prof_Ex */
|
|
/* FIXME: Obsolete CM_Set_HW_Prof_Flags */
|
|
/* FIXME: Obsolete CM_Set_HW_Prof_Flags_Ex */
|
|
/* FIXME: Obsolete CM_Setup_DevNode */
|
|
/* FIXME: Obsolete CM_Setup_DevNode_Ex */
|
|
/* FIXME: Obsolete CM_Test_Range_Available */
|
|
/* FIXME: Obsolete CM_Uninstall_DevNode */
|
|
/* FIXME: Obsolete CM_Uninstall_DevNode_Ex */
|
|
/* FIXME: Obsolete CM_Unregister_Device_Interface */
|
|
/* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
|
|
|
|
#define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
|
|
|
|
CMAPI
|
|
DWORD
|
|
WINAPI
|
|
CMP_WaitNoPendingInstallEvents(
|
|
IN DWORD dwTimeout);
|
|
|
|
#include <poppack.h>
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __CFGMGR32_H */
|