configmg.h
来自「用于查询PC机上的USB端口是否有设备挂接上」· C头文件 代码 · 共 1,777 行 · 第 1/5 页
H
1,777 行
"_CONFIGMG_Get_Res_Des_Data_Size", \
"_CONFIGMG_Get_Res_Des_Data", \
"_CONFIGMG_Process_Events_Now", \
"_CONFIGMG_Create_Range_List", \
"_CONFIGMG_Add_Range", \
"_CONFIGMG_Delete_Range", \
"_CONFIGMG_Test_Range_Available", \
"_CONFIGMG_Dup_Range_List", \
"_CONFIGMG_Free_Range_List", \
"_CONFIGMG_Invert_Range_List", \
"_CONFIGMG_Intersect_Range_List", \
"_CONFIGMG_First_Range", \
"_CONFIGMG_Next_Range", \
"_CONFIGMG_Dump_Range_List", \
"_CONFIGMG_Load_DLVxDs", \
"_CONFIGMG_Get_DDBs", \
"_CONFIGMG_Get_CRC_CheckSum", \
"_CONFIGMG_Register_DevLoader", \
"_CONFIGMG_Reenumerate_DevNode", \
"_CONFIGMG_Setup_DevNode", \
"_CONFIGMG_Reset_Children_Marks", \
"_CONFIGMG_Get_DevNode_Status", \
"_CONFIGMG_Remove_Unmarked_Children", \
"_CONFIGMG_ISAPNP_To_CM", \
"_CONFIGMG_CallBack_Device_Driver", \
"_CONFIGMG_CallBack_Enumerator", \
"_CONFIGMG_Get_Alloc_Log_Conf", \
"_CONFIGMG_Get_DevNode_Key_Size", \
"_CONFIGMG_Get_DevNode_Key", \
"_CONFIGMG_Read_Registry_Value", \
"_CONFIGMG_Write_Registry_Value", \
"_CONFIGMG_Disable_DevNode", \
"_CONFIGMG_Enable_DevNode", \
"_CONFIGMG_Move_DevNode", \
"_CONFIGMG_Set_Bus_Info", \
"_CONFIGMG_Get_Bus_Info", \
"_CONFIGMG_Set_HW_Prof", \
"_CONFIGMG_Recompute_HW_Prof", \
"_CONFIGMG_Query_Change_HW_Prof", \
"_CONFIGMG_Get_Device_Driver_Private_DWord", \
"_CONFIGMG_Set_Device_Driver_Private_DWord", \
"_CONFIGMG_Get_HW_Prof_Flags", \
"_CONFIGMG_Set_HW_Prof_Flags", \
"_CONFIGMG_Read_Registry_Log_Confs", \
"_CONFIGMG_Run_Detection", \
"_CONFIGMG_Call_At_Appy_Time", \
"_CONFIGMG_Fail_Change_HW_Prof", \
"_CONFIGMG_Set_Private_Problem", \
"_CONFIGMG_Debug_DevNode", \
"_CONFIGMG_Get_Hardware_Profile_Info", \
"_CONFIGMG_Register_Enumerator_Function", \
"_CONFIGMG_Call_Enumerator_Function", \
"_CONFIGMG_Add_ID", \
"_CONFIGMG_Find_Range", \
"_CONFIGMG_Get_Global_State", \
"_CONFIGMG_Broadcast_Device_Change_Message", \
"_CONFIGMG_Call_DevNode_Handler", \
"_CONFIGMG_Remove_Reinsert_All", \
"_CONFIGMG_Change_DevNode_Status", \
"_CONFIGMG_Reprocess_DevNode", \
"_CONFIGMG_Assert_Structure", \
"_CONFIGMG_Discard_Boot_Log_Conf", \
"_CONFIGMG_Set_Dependent_DevNode", \
"_CONFIGMG_Get_Dependent_DevNode", \
"_CONFIGMG_Refilter_DevNode", \
"_CONFIGMG_Merge_Range_List", \
"_CONFIGMG_Substract_Range_List", \
"_CONFIGMG_Set_DevNode_PowerState", \
"_CONFIGMG_Get_DevNode_PowerState", \
"_CONFIGMG_Set_DevNode_PowerCapabilities", \
"_CONFIGMG_Get_DevNode_PowerCapabilities", \
"_CONFIGMG_Read_Range_List", \
"_CONFIGMG_Write_Range_List", \
"_CONFIGMG_Get_Set_Log_Conf_Priority", \
"_CONFIGMG_Support_Share_Irq", \
"_CONFIGMG_Get_Parent_Structure", \
"_CONFIGMG_Register_For_Idle_Detection", \
"_CONFIGMG_CM_To_ISAPNP", \
"_CONFIGMG_Get_DevNode_Handler", \
"_CONFIGMG_Detect_Resource_Conflict", \
"_CONFIGMG_Get_Device_Interface_List", \
"_CONFIGMG_Get_Device_Interface_List_Size", \
"_CONFIGMG_Get_Conflict_Info", \
"_CONFIGMG_Add_Remove_DevNode_Property", \
"_CONFIGMG_CallBack_At_Appy_Time", \
"_CONFIGMG_Register_Device_Interface", \
"_CONFIGMG_System_Device_Power_State_Mapping", \
"_CONFIGMG_Get_Arbitrator_Info", \
"_CONFIGMG_Waking_Up_From_DevNode", \
"_CONFIGMG_Set_DevNode_Problem", \
"_CONFIGMG_Get_Device_Interface_Alias", \
"_CONFIGMG_Request_Device_Ejection", \
};
/*XLATON*/
/****************************************************************************
*
* GLOBALLY DEFINED TYPEDEFS
*
***************************************************************************/
typedef RETURN_TYPE CONFIGRET; // Standardized return value.
typedef PPVMMDDB *PPPVMMDDB; // Too long to describe.
typedef VOID CMFAR *PFARVOID; // Pointer to a VOID.
typedef ULONG CMFAR *PFARULONG; // Pointer to a ULONG.
typedef char CMFAR *PFARCHAR; // Pointer to a string.
typedef VMMHKEY CMFAR *PFARHKEY; // Pointer to a HKEY.
typedef char CMFAR *DEVNODEID; // Device ID ANSI name.
typedef DWORD LOG_CONF; // Logical configuration.
typedef LOG_CONF CMFAR *PLOG_CONF; // Pointer to logical configuration.
typedef DWORD RES_DES; // Resource descriptor.
typedef RES_DES CMFAR *PRES_DES; // Pointer to resource descriptor.
typedef DWORD DEVNODE; // Devnode.
typedef DEVNODE CMFAR *PDEVNODE; // Pointer to devnode.
typedef DWORD REGISTERID; // Arbitartor registration.
typedef REGISTERID CMFAR *PREGISTERID; // Pointer to arbitartor registration.
typedef ULONG RESOURCEID; // Resource type ID.
typedef RESOURCEID CMFAR *PRESOURCEID; // Pointer to resource type ID.
typedef ULONG PRIORITY; // Priority number.
typedef PRIORITY CMFAR *PPRIORITY; // Pointer to a priority number.
typedef DWORD RANGE_LIST; // Range list handle.
typedef RANGE_LIST CMFAR *PRANGE_LIST; // Pointer to a range list handle.
typedef DWORD RANGE_ELEMENT; // Range list element handle.
typedef RANGE_ELEMENT CMFAR *PRANGE_ELEMENT;// Pointer to a range element handle.
typedef DWORD LOAD_TYPE; // For the loading function.
typedef CMCONFIG CMFAR *PCMCONFIG; // Pointer to a config buffer info.
typedef DWORD CMBUSTYPE; // Type of the bus.
typedef CMBUSTYPE CMFAR *PCMBUSTYPE; // Pointer to a bus type.
typedef double VMM_TIME; // Time in microticks.
#define LODWORD(x) ((DWORD)(x))
#define HIDWORD(x) (*(PDWORD)(PDWORD(&x)+1))
#ifdef _NTDDK_
typedef DEVICE_POWER_STATE PSMAPPING[PowerSystemMaximum];
struct _PSEXTRAMAPPING {
PSMAPPING psMapping;
SYSTEM_POWER_STATE spsWake;
};
typedef struct _PSEXTRAMAPPING PSEXTRAMAPPING;
#else
typedef VOID PSMAPPING;
typedef VOID PSEXTRAMAPPING;
#endif
typedef PSMAPPING CMFAR *PPSMAPPING;
typedef PSEXTRAMAPPING CMFAR *PPSEXTRAMAPPING;
typedef ULONG CONFIGFUNC;
typedef ULONG SUBCONFIGFUNC;
typedef CONFIGRET (CMFAR _cdecl *CMCONFIGHANDLER)(CONFIGFUNC, SUBCONFIGFUNC, DEVNODE, ULONG, ULONG);
typedef CONFIGRET (CMFAR _cdecl *CMENUMHANDLER)(CONFIGFUNC, SUBCONFIGFUNC, DEVNODE, DEVNODE, ULONG);
typedef VOID (CMFAR _cdecl *CMAPPYCALLBACKHANDLER)(ULONG);
typedef ULONG ENUMFUNC;
typedef CONFIGRET (CMFAR _cdecl *CMENUMFUNCTION)(ENUMFUNC, ULONG, DEVNODE, PFARVOID, ULONG);
/****************************************************************************
*
* Arbitration list structures (they must be key in sync with CONFIGMG's
* local.h own structure).
*
***************************************************************************/
typedef struct nodelist_s NODELIST;
typedef NODELIST CMFAR *PNODELIST;
typedef PNODELIST CMFAR *PPNODELIST;
struct nodelist_s {
struct nodelist_s *nl_Next; // Next node element
struct nodelist_s *nl_Previous; // Previous node element
DEVNODE nl_ItsDevNode; // The dev node it represent
LOG_CONF nl_Test_Req; // Test resource alloc request
ULONG nl_ulSortDWord; // Specifies the sort order
};
struct nodelistheader_s {
struct nodelist_s *nlh_Head; // First node element
struct nodelist_s *nlh_Tail; // Last node element
};
typedef struct nodelistheader_s NODELISTHEADER;
typedef NODELISTHEADER CMFAR *PNODELISTHEADER;
/*XLATOFF*/
struct arbitfree_s {
PFARVOID af_PointerToInfo; // the arbitrator info
ULONG af_SizeOfInfo; // size of the info
};
/*XLATON*/
/* ASM
arbitfree_s STRUC
af_PointerToInfo dd ?
af_SizeOfInfo dd ?
arbitfree_s ENDS
*/
typedef struct arbitfree_s ARBITFREE;
typedef ARBITFREE CMFAR *PARBITFREE;
typedef ULONG ARBFUNC;
typedef CONFIGRET (CMFAR _cdecl *CMARBHANDLER)(ARBFUNC, ULONG, DEVNODE, PNODELISTHEADER);
/****************************************************************************
*
* CONFIGURATION MANAGER BUS TYPES
*
***************************************************************************/
#define BusType_None 0x00000000
#define BusType_ISA 0x00000001
#define BusType_EISA 0x00000002
#define BusType_PCI 0x00000004
#define BusType_PCMCIA 0x00000008
#define BusType_ISAPNP 0x00000010
#define BusType_MCA 0x00000020
#define BusType_BIOS 0x00000040
#define BusType_ACPI 0x00000080
#define BusType_IDE 0x00000100
#define BusType_MF 0x00000200
/****************************************************************************
*
* CONFIGURATION MANAGER STRUCTURE TYPES
*
***************************************************************************/
#define CMAS_UNKNOWN 0x00000000
#define CMAS_DEVNODE 0x00000001
#define CMAS_LOG_CONF 0x00000002
#define CMAS_RES_DES 0x00000003
#define CMAS_RANGELIST_HEADER 0x00000004
#define CMAS_RANGELIST 0x00000005
#define CMAS_NODELIST_HEADER 0x00000006
#define CMAS_NODELIST 0x00000007
#define CMAS_INTERNAL_RES_DES 0x00000008
#define CMAS_ARBITRATOR 0x00000009
/****************************************************************************
*
* CONFIGURATION MANAGER RETURN VALUES
*
***************************************************************************/
#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_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_INVALID_RESOURCEID 0x0000000B
#define CR_DLVXD_NOT_FOUND 0x0000000C
#define CR_NO_SUCH_DEVNODE 0x0000000D
#define CR_NO_MORE_LOG_CONF 0x0000000E
#define CR_NO_MORE_RES_DES 0x0000000F
#define CR_ALREADY_SUCH_DEVNODE 0x00000010
#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_A_GOOD_TIME 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
//
// 4.0 OPK2 results
//
#define CR_NO_DEPENDENT 0x0000002C
//
// 4.1 OPK2 results
//
#define CR_SAME_RESOURCES 0x0000002D
#define CR_ALREADY_SUCH_DEPENDENT 0x0000002E
//
// 4.11 results
//
#define CR_UNLOCK_FAILED 0x0000002F
#define CR_EJECT_FAILED 0x00000030
#define CR_NOT_EJECTABLE 0x00000031
//
// 4.90 results
//
#define CR_UNOWNED 0x00000032
#define CR_BADLY_OWNED 0x00000033
#define NUM_CR_RESULTS 0x00000034
/*XLATOFF*/
#define DEBUG_RETURN_CR_NAMES \
char CMFAR *lpszReturnCRName[NUM_CR_RESULTS]= \
{ \
"CR_SUCCESS", \
"CR_DEFAULT", \
"CR_OUT_OF_MEMORY", \
"CR_INVALID_POINTER", \
"CR_INVALID_FLAG", \
"CR_INVALID_DEVNODE", \
"CR_INVALID_RES_DES", \
"CR_INVALID_LOG_CONF", \
"CR_INVALID_ARBITRATOR", \
"CR_INVALID_NODELIST", \
"CR_DEVNODE_HAS_REQS", \
"CR_INVALID_RESOURCEID", \
"CR_DLVXD_NOT_FOUND", \
"CR_NO_SUCH_DEVNODE", \
"CR_NO_MORE_LOG_CONF", \
"CR_NO_MORE_RES_DES", \
"CR_ALREADY_SUCH_DEVNODE", \
"CR_INVALID_RANGE_LIST", \
"CR_INVALID_RANGE", \
"CR_FAILURE", \
"CR_NO_SUCH_LOGICAL_DEVICE", \
"CR_CREATE_BLOCKED", \
"CR_NOT_A_GOOD_TIME", \
"CR_REMOVE_VETOED", \
"CR_APM_VETOED", \
"CR_INVALID_LOAD_TYPE", \
"CR_BUFFER_SMALL", \
"CR_NO_ARBITRATOR", \
"CR_NO_REGISTRY_HANDLE", \
"CR_REGISTRY_ERROR", \
"CR_INVALID_DEVICE_ID", \
"CR_INVALID_DATA", \
"CR_INVALID_API", \
"CR_DEVLOADER_NOT_READY", \
"CR_NEED_RESTART", \
"CR_NO_MORE_HW_PROFILES", \
"CR_DEVICE_NOT_THERE", \
"CR_NO_SUCH_VALUE", \
"CR_WRONG_TYPE", \
"CR_INVALID_PRIORITY", \
"CR_NOT_DISABLEABLE", \
"CR_FREE_RESOURCES", \
"CR_QUERY_VETOED", \
"CR_CANT_SHARE_IRQ", \
"CR_NO_DEPENDENT", \
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?