;****************************************************************************
;                                                                           *
; THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY     *
; KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE       *
; IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR     *
; PURPOSE.                                                                  *
;                                                                           *
; Copyright (C) 1993-95  Microsoft Corporation.  All Rights Reserved.       *
;                                                                           *
;****************************************************************************

ifndef _CONFIGMG_H
_CONFIGMG_H	EQU	1
CONFIGMG_VERSION	EQU	0400H
PNPDRVS_Major_Ver	EQU	0004H
PNPDRVS_Minor_Ver	EQU	0000H
ifdef	MAXDEBUG
CM_PERFORMANCE_INFO	EQU	1
endif
ifndef	DEBUG
CM_GOLDEN_RETAIL	EQU	1
endif
ifndef	NORESDES
ResType_All	EQU	00000000H
ResType_None	EQU	00000000H
ResType_Mem	EQU	00000001H
ResType_IO	EQU	00000002H
ResType_DMA	EQU	00000003H
ResType_IRQ	EQU	00000004H
ResType_Max	EQU	00000004H
ResType_Ignored_Bit	EQU	00008000H
DEBUG_RESTYPE_NAMES	EQU	<charCMFAR*lpszResourceName[ResType_Max+1]{"All/None","Mem","IO","DMA","IRQ",}>
MType_Range	EQU	SIZE Mem_Range_s
fMD_MemoryType	EQU	1
fMD_ROM	EQU	0
fMD_RAM	EQU	1
fMD_32_24	EQU	2
fMD_24	EQU	0
fMD_32	EQU	2

Mem_Range_s	STRUC
MR_Align	DD	?
MR_nBytes	DD	?
MR_Min	DD	?
MR_Max	DD	?
MR_Flags	DW	?
MR_Reserved	DW	?
Mem_Range_s	ENDS

Mem_Des_s	STRUC
MD_Count	DW	?
MD_Type	DW	?
MD_Alloc_Base	DD	?
MD_Alloc_End	DD	?
MD_Flags	DW	?
MD_Reserved	DW	?
Mem_Des_s	ENDS
IOType_Range	EQU	SIZE IO_Range_s

IO_Range_s	STRUC
IOR_Align	DW	?
IOR_nPorts	DW	?
IOR_Min	DW	?
IOR_Max	DW	?
IOR_RangeFlags	DW	?
IOR_Alias	DB	?
IOR_Decode	DB	?
IO_Range_s	ENDS

IO_Des_s	STRUC
IOD_Count	DW	?
IOD_Type	DW	?
IOD_Alloc_Base	DW	?
IOD_Alloc_End	DW	?
IOD_DesFlags	DW	?
IOD_Alloc_Alias	DB	?
IOD_Alloc_Decode	DB	?
IO_Des_s	ENDS
IOA_Local	EQU	0ffH
mDD_Width	EQU	0003H
fDD_BYTE	EQU	0
fDD_WORD	EQU	1
fDD_DWORD	EQU	2
szDMA_Des_Flags	EQU	<"WD">

DMA_Des_s	STRUC
DD_Flags	DB	?
DD_Alloc_Chan	DB	?
DD_Req_Mask	DB	?
DD_Reserved	DB	?
DMA_Des_s	ENDS
fIRQD_Share	EQU	1
cIRQ_Des_Flags	EQU	<'S'>

IRQ_Des_s	STRUC
IRQD_Flags	DW	?
IRQD_Alloc_Num	DW	?
IRQD_Req_Mask	DW	?
IRQD_Reserved	DW	?
IRQ_Des_s	ENDS
endif
LCPRI_FORCECONFIG	EQU	00000000H
LCPRI_BOOTCONFIG	EQU	00000001H
LCPRI_DESIRED	EQU	00002000H
LCPRI_NORMAL	EQU	00003000H
LCPRI_LASTBESTCONFIG	EQU	00003FFFH
LCPRI_SUBOPTIMAL	EQU	00005000H
LCPRI_LASTSOFTCONFIG	EQU	00007FFFH
LCPRI_RESTART	EQU	00008000H
LCPRI_REBOOT	EQU	00009000H
LCPRI_POWEROFF	EQU	0000A000H
LCPRI_HARDRECONFIG	EQU	0000C000H
LCPRI_HARDWIRED	EQU	0000E000H
LCPRI_IMPOSSIBLE	EQU	0000F000H
LCPRI_DISABLED	EQU	0000FFFFH
MAX_LCPRI	EQU	0000FFFFH
MAX_MEM_REGISTERS	EQU	9
MAX_IO_PORTS	EQU	20
MAX_IRQS	EQU	7
MAX_DMA_CHANNELS	EQU	7

Config_Buff_s	STRUC
wNumMemWindows	DW	?
dMemBase	DD	MAX_MEM_REGISTERS DUP (?)
dMemLength	DD	MAX_MEM_REGISTERS DUP (?)
wMemAttrib	DW	MAX_MEM_REGISTERS DUP (?)
wNumIOPorts	DW	?
wIOPortBase	DW	MAX_IO_PORTS DUP (?)
wIOPortLength	DW	MAX_IO_PORTS DUP (?)
wNumIRQs	DW	?
bIRQRegisters	DB	MAX_IRQS DUP (?)
bIRQAttrib	DB	MAX_IRQS DUP (?)
wNumDMAs	DW	?
bDMALst	DB	MAX_DMA_CHANNELS DUP (?)
wDMAAttrib	DW	MAX_DMA_CHANNELS DUP (?)
bReserved1	DB	3 DUP (?)
Config_Buff_s	ENDS
ifndef	CMJUSTRESDES
MAX_DEVICE_ID_LEN	EQU	200
INCLUDE vmmreg.INC
Begin_Service_Table CONFIGMG, VxD
CONFIGMG_Service	 _CONFIGMG_Get_Version, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Initialize, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Locate_DevNode, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Parent, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Child, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Sibling, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Device_ID_Size, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Device_ID, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Depth, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Private_DWord, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Set_Private_DWord, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Create_DevNode, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Query_Remove_SubTree, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Remove_SubTree, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Register_Device_Driver, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Register_Enumerator, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Register_Arbitrator, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Deregister_Arbitrator, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Query_Arbitrator_Free_Size, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Query_Arbitrator_Free_Data, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Sort_NodeList, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Yield, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Lock, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Unlock, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Add_Empty_Log_Conf, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Free_Log_Conf, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_First_Log_Conf, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Next_Log_Conf, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Add_Res_Des, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Modify_Res_Des, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Free_Res_Des, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Next_Res_Des, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Performance_Info, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Res_Des_Data_Size, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Res_Des_Data, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Process_Events_Now, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Create_Range_List, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Add_Range, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Delete_Range, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Test_Range_Available, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Dup_Range_List, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Free_Range_List, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Invert_Range_List, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Intersect_Range_List, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_First_Range, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Next_Range, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Dump_Range_List, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Load_DLVxDs, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_DDBs, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_CRC_CheckSum, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Register_DevLoader, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Reenumerate_DevNode, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Setup_DevNode, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Reset_Children_Marks, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_DevNode_Status, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Remove_Unmarked_Children, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_ISAPNP_To_CM, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_CallBack_Device_Driver, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_CallBack_Enumerator, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Alloc_Log_Conf, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_DevNode_Key_Size, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_DevNode_Key, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Read_Registry_Value, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Write_Registry_Value, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Disable_DevNode, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Enable_DevNode, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Move_DevNode, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Set_Bus_Info, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Bus_Info, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Set_HW_Prof, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Recompute_HW_Prof, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Query_Change_HW_Prof, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Device_Driver_Private_DWord, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Set_Device_Driver_Private_DWord, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_HW_Prof_Flags, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Set_HW_Prof_Flags, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Read_Registry_Log_Confs, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Run_Detection, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Call_At_Appy_Time, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Fail_Change_HW_Prof, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Set_Private_Problem, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Debug_DevNode, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Hardware_Profile_Info, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Register_Enumerator_Function, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Call_Enumerator_Function, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Add_ID, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Find_Range, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Get_Global_State, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Broadcast_Device_Change_Message, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Call_DevNode_Handler, VxD_CODE
CONFIGMG_Service	 _CONFIGMG_Remove_Reinsert_All, VxD_CODE
End_Service_Table CONFIGMG, VxD
BusType_None	EQU	00000000H
BusType_ISA	EQU	00000001H
BusType_EISA	EQU	00000002H
BusType_PCI	EQU	00000004H
BusType_PCMCIA	EQU	00000008H
BusType_ISAPNP	EQU	00000010H
BusType_MCA	EQU	00000020H
BusType_BIOS	EQU	00000040H
CR_SUCCESS	EQU	00000000H
CR_DEFAULT	EQU	00000001H
CR_OUT_OF_MEMORY	EQU	00000002H
CR_INVALID_POINTER	EQU	00000003H
CR_INVALID_FLAG	EQU	00000004H
CR_INVALID_DEVNODE	EQU	00000005H
CR_INVALID_RES_DES	EQU	00000006H
CR_INVALID_LOG_CONF	EQU	00000007H
CR_INVALID_ARBITRATOR	EQU	00000008H
CR_INVALID_NODELIST	EQU	00000009H
CR_DEVNODE_HAS_REQS	EQU	0000000AH
CR_INVALID_RESOURCEID	EQU	0000000BH
CR_DLVXD_NOT_FOUND	EQU	0000000CH
CR_NO_SUCH_DEVNODE	EQU	0000000DH
CR_NO_MORE_LOG_CONF	EQU	0000000EH
CR_NO_MORE_RES_DES	EQU	0000000FH
CR_ALREADY_SUCH_DEVNODE	EQU	00000010H
CR_INVALID_RANGE_LIST	EQU	00000011H
CR_INVALID_RANGE	EQU	00000012H
CR_FAILURE	EQU	00000013H
CR_NO_SUCH_LOGICAL_DEV	EQU	00000014H
CR_CREATE_BLOCKED	EQU	00000015H
CR_NOT_SYSTEM_VM	EQU	00000016H
CR_REMOVE_VETOED	EQU	00000017H
CR_APM_VETOED	EQU	00000018H
CR_INVALID_LOAD_TYPE	EQU	00000019H
CR_BUFFER_SMALL	EQU	0000001AH
CR_NO_ARBITRATOR	EQU	0000001BH
CR_NO_REGISTRY_HANDLE	EQU	0000001CH
CR_REGISTRY_ERROR	EQU	0000001DH
CR_INVALID_DEVICE_ID	EQU	0000001EH
CR_INVALID_DATA	EQU	0000001FH
CR_INVALID_API	EQU	00000020H
CR_DEVLOADER_NOT_READY	EQU	00000021H
CR_NEED_RESTART	EQU	00000022H
CR_NO_MORE_HW_PROFILES	EQU	00000023H
CR_DEVICE_NOT_THERE	EQU	00000024H
CR_NO_SUCH_VALUE	EQU	00000025H
CR_WRONG_TYPE	EQU	00000026H
CR_INVALID_PRIORITY	EQU	00000027H
CR_NOT_DISABLEABLE	EQU	00000028H
CR_FREE_RESOURCES	EQU	00000029H
CR_QUERY_VETOED	EQU	0000002AH
CR_CANT_SHARE_IRQ	EQU	0000002BH
NUM_CR_RESULTS	EQU	0000002CH
CM_PROB_NOT_CONFIGURED	EQU	00000001H
CM_PROB_DEVLOADER_FAILED	EQU	00000002H
CM_PROB_OUT_OF_MEMORY	EQU	00000003H
CM_PROB_ENTRY_IS_WRONG_TYPE	EQU	00000004H
CM_PROB_LACKED_ARBITRATOR	EQU	00000005H
CM_PROB_BOOT_CONFIG_CONFLICT	EQU	00000006H
CM_PROB_FAILED_FILTER	EQU	00000007H
CM_PROB_DEVLOADER_NOT_FOUND	EQU	00000008H
CM_PROB_INVALID_DATA	EQU	00000009H
CM_PROB_FAILED_START	EQU	0000000AH
CM_PROB_LIAR	EQU	0000000BH
CM_PROB_NORMAL_CONFLICT	EQU	0000000CH
CM_PROB_NOT_VERIFIED	EQU	0000000DH
CM_PROB_NEED_RESTART	EQU	0000000EH
CM_PROB_REENUMERATION	EQU	0000000FH
CM_PROB_PARTIAL_LOG_CONF	EQU	00000010H
CM_PROB_UNKNOWN_RESOURCE	EQU	00000011H
CM_PROB_REINSTALL	EQU	00000012H
CM_PROB_REGISTRY	EQU	00000013H
CM_PROB_VXDLDR	EQU	00000014H
CM_PROB_WILL_BE_REMOVED	EQU	00000015H
CM_PROB_DISABLED	EQU	00000016H
CM_PROB_DEVLOADER_NOT_READY	EQU	00000017H
CM_PROB_DEVICE_NOT_THERE	EQU	00000018H
CM_PROB_MOVED	EQU	00000019H
CM_PROB_TOO_EARLY	EQU	0000001AH
CM_PROB_NO_VALID_LOG_CONF	EQU	0000001BH
CM_PROB_FAILED_INSTALL	EQU	0000001CH
CM_PROB_HARDWARE_DISABLED	EQU	0000001DH
CM_PROB_CANT_SHARE_IRQ	EQU	0000001EH
NUM_CM_PROB	EQU	0000001FH
CM_INITIALIZE_VMM	EQU	00000000H
CM_INITIALIZE_VXDLDR	EQU	00000001H
CM_INITIALIZE_BITS	EQU	00000001H
CM_YIELD_NO_RESUME_EXEC	EQU	00000000H
CM_YIELD_RESUME_EXEC	EQU	00000001H
CM_YIELD_BITS	EQU	00000001H
CM_CREATE_DEVNODE_NORMAL	EQU	00000000H
CM_CREATE_DEVNODE_NO_WAIT_INSTALL	EQU	00000001H
CM_CREATE_DEVNODE_BITS	EQU	00000001H
CM_REGISTER_DEVICE_DRIVER_STATIC	EQU	00000000H
CM_REGISTER_DEVICE_DRIVER_DISABLEABLE	EQU	00000001H
CM_REGISTER_DEVICE_DRIVER_REMOVABLE	EQU	00000002H
CM_REGISTER_DEVICE_DRIVER_BITS	EQU	00000003H
CM_REGISTER_ENUMERATOR_SOFTWARE	EQU	00000000H
CM_REGISTER_ENUMERATOR_HARDWARE	EQU	00000001H
CM_REGISTER_ENUMERATOR_BITS	EQU	00000001H
CM_QUERY_REMOVE_UI_OK	EQU	00000000H
CM_QUERY_REMOVE_UI_NOT_OK	EQU	00000001H
CM_QUERY_REMOVE_BITS	EQU	00000001H
CM_REMOVE_UI_OK	EQU	00000000H
CM_REMOVE_UI_NOT_OK	EQU	00000001H
CM_REMOVE_BITS	EQU	00000001H
CM_SETUP_DEVNODE_READY	EQU	00000000H
CM_SETUP_DOWNLOAD	EQU	00000001H
CM_SETUP_WRITE_LOG_CONFS	EQU	00000002H
CM_SETUP_PROP_CHANGE	EQU	00000003H
CM_SETUP_BITS	EQU	00000003H
CM_ADD_RANGE_ADDIFCONFLICT	EQU	00000000H
CM_ADD_RANGE_DONOTADDIFCONFLICT	EQU	00000001H
CM_ADD_RANGE_BITS	EQU	00000001H
CM_ISAPNP_ADD_RES_DES	EQU	00000000H
CM_ISAPNP_SETUP	EQU	00000001H
CM_ISAPNP_ADD_BOOT_RES_DES	EQU	00000002H
CM_ISAPNP_ADD_RES_DES_UNCONFIGURABLE	EQU	00000003H
CM_ISAPNP_BITS	EQU	00000003H
CM_GET_PERFORMANCE_INFO_DATA	EQU	00000000H
CM_GET_PERFORMANCE_INFO_RESET	EQU	00000001H
CM_GET_PERFORMANCE_INFO_START	EQU	00000002H
CM_GET_PERFORMANCE_INFO_STOP	EQU	00000003H
CM_RESET_HIT_DATA	EQU	00000004H
CM_GET_HIT_DATA	EQU	00000005H
CM_GET_PERFORMANCE_INFO_BITS	EQU	0000000FH
CM_HIT_DATA_FILES	EQU	0FFFF0000H
CM_HIT_DATA_SIZE	EQU	((256*8)+8)
CM_GET_ALLOC_LOG_CONF_ALLOC	EQU	00000000H
CM_GET_ALLOC_LOG_CONF_BOOT_ALLOC	EQU	00000001H
CM_GET_ALLOC_LOG_CONF_BITS	EQU	00000001H
CM_REGISTRY_HARDWARE	EQU	00000000H
CM_REGISTRY_SOFTWARE	EQU	00000001H
CM_REGISTRY_USER	EQU	00000100H
CM_REGISTRY_CONFIG	EQU	00000200H
CM_REGISTRY_BITS	EQU	00000301H
CM_DISABLE_POLITE	EQU	00000000H
CM_DISABLE_ABSOLUTE	EQU	00000001H
CM_DISABLE_HARDWARE	EQU	00000002H
CM_DISABLE_BITS	EQU	00000003H
CM_HW_PROF_UNDOCK	EQU	00000000H
CM_HW_PROF_DOCK	EQU	00000001H
CM_HW_PROF_RECOMPUTE_BITS	EQU	00000001H
CM_HW_PROF_DOCK_KNOWN	EQU	00000002H
CM_HW_PROF_QUERY_CHANGE_BITS	EQU	00000003H
CM_DETECT_NEW_PROFILE	EQU	00000001H
CM_DETECT_CRASHED	EQU	00000002H
CM_DETECT_HWPROF_FIRST_BOOT	EQU	00000004H
CM_DETECT_RUN	EQU	80000000H
CM_ADD_ID_HARDWARE	EQU	00000000H
CM_ADD_ID_COMPATIBLE	EQU	00000001H
CM_ADD_ID_BITS	EQU	00000001H
CM_REENUMERATE_NORMAL	EQU	00000000H
CM_REENUMERATE_SYNCHRONOUS	EQU	00000001H
CM_REENUMERATE_BITS	EQU	00000001H
CM_BROADCAST_SEND	EQU	00000000H
CM_BROADCAST_QUERY	EQU	00000001H
CM_BROADCAST_BITS	EQU	00000001H
CM_CALL_HANDLER_ENUMERATOR	EQU	00000000H
CM_CALL_HANDLER_DEVICE_DRIVER	EQU	00000001H
CM_CALL_HANDLER_BITS	EQU	00000001H
CM_GLOBAL_STATE_CAN_DO_UI	EQU	00000001H
CM_GLOBAL_STATE_ON_BIG_STACK	EQU	00000002H
CM_GLOBAL_STATE_SERVICES_AVAILABLE	EQU	00000004H
CM_GLOBAL_STATE_SHUTING_DOWN	EQU	00000008H
CM_GLOBAL_STATE_DETECTION_PENDING	EQU	00000010H
CM_REMOVE_REINSERT_ALL_REMOVE	EQU	00000000H
CM_REMOVE_REINSERT_ALL_REINSERT	EQU	00000001H
CM_REMOVE_REINSERT_ALL_BITS	EQU	00000001H
CONFIG_FILTER	EQU	00000000H
CONFIG_START	EQU	00000001H
CONFIG_STOP	EQU	00000002H
CONFIG_TEST	EQU	00000003H
CONFIG_REMOVE	EQU	00000004H
CONFIG_ENUMERATE	EQU	00000005H
CONFIG_SETUP	EQU	00000006H
CONFIG_CALLBACK	EQU	00000007H
CONFIG_APM	EQU	00000008H
CONFIG_TEST_FAILED	EQU	00000009H
CONFIG_TEST_SUCCEEDED	EQU	0000000AH
CONFIG_VERIFY_DEVICE	EQU	0000000BH
CONFIG_PREREMOVE	EQU	0000000CH
CONFIG_SHUTDOWN	EQU	0000000DH
CONFIG_PREREMOVE2	EQU	0000000EH
CONFIG_READY	EQU	0000000FH
CONFIG_PROP_CHANGE	EQU	00000010H
CONFIG_PRIVATE	EQU	00000011H
CONFIG_PRESHUTDOWN	EQU	00000012H
NUM_CONFIG_COMMANDS	EQU	00000013H
CONFIG_START_DYNAMIC_START	EQU	00000000H
CONFIG_START_FIRST_START	EQU	00000001H
CONFIG_STOP_DYNAMIC_STOP	EQU	00000000H
CONFIG_STOP_HAS_PROBLEM	EQU	00000001H
CONFIG_REMOVE_DYNAMIC	EQU	00000000H
CONFIG_REMOVE_SHUTDOWN	EQU	00000001H
CONFIG_REMOVE_REBOOT	EQU	00000002H
CONFIG_TEST_CAN_STOP	EQU	00000000H
CONFIG_TEST_CAN_REMOVE	EQU	00000001H
CONFIG_APM_TEST_STANDBY	EQU	00000000H
CONFIG_APM_TEST_SUSPEND	EQU	00000001H
CONFIG_APM_TEST_STANDBY_FAILED	EQU	00000002H
CONFIG_APM_TEST_SUSPEND_FAILED	EQU	00000003H
CONFIG_APM_TEST_STANDBY_SUCCEEDED	EQU	00000004H
CONFIG_APM_TEST_SUSPEND_SUCCEEDED	EQU	00000005H
CONFIG_APM_RESUME_STANDBY	EQU	00000006H
CONFIG_APM_RESUME_SUSPEND	EQU	00000007H
CONFIG_APM_RESUME_CRITICAL	EQU	00000008H
CONFIG_APM_UI_ALLOWED	EQU	80000000H
ARB_TEST_ALLOC	EQU	00000000H
ARB_RETEST_ALLOC	EQU	00000001H
ARB_SET_ALLOC	EQU	00000002H
ARB_RELEASE_ALLOC	EQU	00000003H
ARB_QUERY_FREE	EQU	00000004H
ARB_REMOVE	EQU	00000005H
ARB_FORCE_ALLOC	EQU	00000006H
NUM_ARB_COMMANDS	EQU	00000007H
DEBUG_ARB_NAMES	EQU	<charCMFAR*lpszArbFuncName[NUM_ARB_COMMANDS]{"ARB_TEST_ALLOC","ARB_RETEST_ALLOC","ARB_SET_ALLOC","ARB_RELEASE_ALLOC","ARB_QUERY_FREE","ARB_REMOVE","ARB_FORCE_ALLOC",}>
DN_ROOT_ENUMERATED	EQU	00000001H
DN_DRIVER_LOADED	EQU	00000002H
DN_ENUM_LOADED	EQU	00000004H
DN_STARTED	EQU	00000008H
DN_MANUAL	EQU	00000010H
DN_NEED_TO_ENUM	EQU	00000020H
DN_NOT_FIRST_TIME	EQU	00000040H
DN_HARDWARE_ENUM	EQU	00000080H
DN_LIAR	EQU	00000100H
DN_HAS_MARK	EQU	00000200H
DN_HAS_PROBLEM	EQU	00000400H
DN_FILTERED	EQU	00000800H
DN_MOVED	EQU	00001000H
DN_DISABLEABLE	EQU	00002000H
DN_REMOVABLE	EQU	00004000H
DN_PRIVATE_PROBLEM	EQU	00008000H
DN_MF_PARENT	EQU	00010000H
DN_MF_CHILD	EQU	00020000H
DN_WILL_BE_REMOVED	EQU	00040000H
DLVXD_LOAD_ENUMERATOR	EQU	00000000H
DLVXD_LOAD_DEVLOADER	EQU	00000001H
DLVXD_LOAD_DRIVER	EQU	00000002H
NUM_DLVXD_LOAD_TYPE	EQU	00000003H
ARB_GLOBAL	EQU	00000001H
ARB_LOCAL	EQU	00000000H
ARB_SCOPE_BIT	EQU	00000001H
BASIC_LOG_CONF	EQU	00000000H
FILTERED_LOG_CONF	EQU	00000001H
ALLOC_LOG_CONF	EQU	00000002H
BOOT_LOG_CONF	EQU	00000003H
FORCED_LOG_CONF	EQU	00000004H
NUM_LOG_CONF	EQU	00000005H
LOG_CONF_BITS	EQU	00000007H
DEBUG_LOG_CONF_NAMES	EQU	<charCMFAR*lpszLogConfName[NUM_LOG_CONF]{"BASIC_LOG_CONF","FILTERED_LOG_CONF","ALLOC_LOG_CONF","BOOT_LOG_CONF","FORCED_LOG_CONF",}>
PRIORITY_EQUAL_FIRST	EQU	00000008H
PRIORITY_EQUAL_LAST	EQU	00000000H
PRIORITY_BIT	EQU	00000008H
ifndef	Not_VxD

nodelist_s	STRUC
nl_Next	DD	?
nl_Previous	DD	?
nl_ItsDevNode	DD	?
nl_Test_Req	DD	?
nl_ulSortDWord	DD	?
nodelist_s	ENDS

nodelistheader_s	STRUC
nlh_Head	DD	?
nlh_Tail	DD	?
nodelistheader_s	ENDS

arbitfree_s	STRUC
af_PointerToInfo	DD	?
af_SizeOfInfo	DD	?
arbitfree_s	ENDS
endif

MEM_Arb_s	STRUC
MEMA_Alloc	DD	?
MEM_Arb_s	ENDS

IO_Arb_s	STRUC
IOA_Alloc	DD	?
IO_Arb_s	ENDS

DMA_Arb_s	STRUC
DMAA_Alloc	DW	?
DMA_Arb_s	ENDS

IRQ_Arb_s	STRUC
IRQA_Alloc	DW	?
IRQA_Share	DW	?
IRQA_Share_Count	DB	16 DUP (?)
IRQ_Arb_s	ENDS
DebugCommand	Macro	FuncName
		local	DC_01
ifndef	CM_GOLDEN_RETAIL
ifndef	debug
 	IsDebugOnlyLoaded	DC_01
endif
	Control_Dispatch	DEBUG_QUERY, FuncName, sCall
endif
DC_01:
endm
IFDEF CM_PERFORMANCE_INFO
CM_PAGEABLE_CODE_SEG	TEXTEQU	<VxD_LOCKED_CODE_SEG>
CM_PAGEABLE_CODE_ENDS	TEXTEQU	<VxD_LOCKED_CODE_ENDS>
CM_PAGEABLE_DATA_SEG	TEXTEQU	<VxD_LOCKED_DATA_SEG>
CM_PAGEABLE_DATA_ENDS	TEXTEQU	<VxD_LOCKED_DATA_ENDS>
ELSE
CM_PAGEABLE_CODE_SEG	TEXTEQU <VxD_PNP_CODE_SEG>
CM_PAGEABLE_CODE_ENDS	TEXTEQU <VxD_PNP_CODE_ENDS>
CM_PAGEABLE_DATA_SEG	TEXTEQU	<VxD_PAGEABLE_DATA_SEG>
CM_PAGEABLE_DATA_ENDS	TEXTEQU	<VxD_PAGEABLE_DATA_ENDS>
ENDIF

IFDEF CM_GOLDEN_RETAIL
CM_DEBUG_CODE_SEG	TEXTEQU	<.err>
CM_DEBUG_CODE_ENDS	TEXTEQU	<.err>
ELSE
IFDEF DEBUG
CM_DEBUG_CODE_SEG	TEXTEQU	<VxD_LOCKED_CODE_SEG>
CM_DEBUG_CODE_ENDS	TEXTEQU	<VxD_LOCKED_CODE_ENDS>
ELSE
CM_DEBUG_CODE_SEG	TEXTEQU	<VxD_DEBUG_ONLY_CODE_SEG>
CM_DEBUG_CODE_ENDS	TEXTEQU	<VxD_DEBUG_ONLY_CODE_ENDS>
ENDIF
ENDIF


CM_API_s	STRUC
pCMAPIStack	DD	?
dwCMAPIService	DD	?
dwCMAPIRet	DD	?
CM_API_s	ENDS
ifndef	MAX_PROFILE_LEN
MAX_PROFILE_LEN	EQU	80
endif

HWProfileInfo_s	STRUC
HWPI_ulHWProfile	DD	?
HWPI_szFriendlyName	DB	MAX_PROFILE_LEN DUP (?)
HWPI_dwFlags	DD	?
HWProfileInfo_s	ENDS
CM_HWPI_NOT_DOCKABLE	EQU	00000000H
CM_HWPI_UNDOCKED	EQU	00000001H
CM_HWPI_DOCKED	EQU	00000002H
endif
endif
