⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cfgmgr32.h

📁 上位机磁盘mass storage传输应用
💻 H
📖 第 1 页 / 共 3 页
字号:
/* * 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 __cplusplusextern "C" {#endif#pragma pack(push,4)#include "ntddk.h"#if defined(_CFGMGR32_)#define CMAPI DECLSPEC_EXPORT#else#define CMAPI DECLSPEC_IMPORT#endif#include "cfg.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         0x0000003Btypedef 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 UNICODEtypedef DEVNODEID_W DEVNODEID;typedef DEVINSTID_W DEVINSTID;#elsetypedef DEVNODEID_A DEVNODEID;typedef DEVINSTID_A DEVINSTID;#endiftypedef 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        	0x00000001typedef 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        									0x18typedef 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    						0x0080typedef 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    			0x000000FFtypedef 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         								0x2typedef 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 _WIN64typedef IRQ_DES_64 IRQ_DES;typedef PIRQ_DES_64 PIRQ_DES;#elsetypedef IRQ_DES_32 IRQ_DES;typedef PIRQ_DES_32 PIRQ_DES;#endiftypedef 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               0x20typedef 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_ENABLEtypedef 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -