cfg.h 8.62 KB
Newer Older
Gijs Vermeulen's avatar
Gijs Vermeulen committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197
/*
 * Copyright 2020 Gijs Vermeulen
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#ifndef _CFG_INCLUDED_
#define _CFG_INCLUDED_

typedef enum _PNP_VETO_TYPE {
    PNP_VetoTypeUnknown,
    PNP_VetoLegacyDevice,
    PNP_VetoPendingClose,
    PNP_VetoWindowsApp,
    PNP_VetoWindowsService,
    PNP_VetoOutstandingOpen,
    PNP_VetoDevice,
    PNP_VetoDriver,
    PNP_VetoIllegalDeviceRequest,
    PNP_VetoInsufficientPower,
    PNP_VetoNonDisableable,
    PNP_VetoLegacyDriver,
    PNP_VetoInsufficientRights,
    PNP_VetoAlreadyRemoved
} PNP_VETO_TYPE, *PPNP_VETO_TYPE;

#define CM_PROB_NOT_CONFIGURED              (0x00000001)
#define CM_PROB_DEVLOADER_FAILED            (0x00000002)
#define CM_PROB_OUT_OF_MEMORY               (0x00000003)
#define CM_PROB_ENTRY_IS_WRONG_TYPE         (0x00000004)
#define CM_PROB_LACKED_ARBITRATOR           (0x00000005)
#define CM_PROB_BOOT_CONFIG_CONFLICT        (0x00000006)
#define CM_PROB_FAILED_FILTER               (0x00000007)
#define CM_PROB_DEVLOADER_NOT_FOUND         (0x00000008)
#define CM_PROB_INVALID_DATA                (0x00000009)
#define CM_PROB_FAILED_START                (0x0000000A)
#define CM_PROB_LIAR                        (0x0000000B)
#define CM_PROB_NORMAL_CONFLICT             (0x0000000C)
#define CM_PROB_NOT_VERIFIED                (0x0000000D)
#define CM_PROB_NEED_RESTART                (0x0000000E)
#define CM_PROB_REENUMERATION               (0x0000000F)
#define CM_PROB_PARTIAL_LOG_CONF            (0x00000010)
#define CM_PROB_UNKNOWN_RESOURCE            (0x00000011)
#define CM_PROB_REINSTALL                   (0x00000012)
#define CM_PROB_REGISTRY                    (0x00000013)
#define CM_PROB_VXDLDR                      (0x00000014)
#define CM_PROB_WILL_BE_REMOVED             (0x00000015)
#define CM_PROB_DISABLED                    (0x00000016)
#define CM_PROB_DEVLOADER_NOT_READY         (0x00000017)
#define CM_PROB_DEVICE_NOT_THERE            (0x00000018)
#define CM_PROB_MOVED                       (0x00000019)
#define CM_PROB_TOO_EARLY                   (0x0000001A)
#define CM_PROB_NO_VALID_LOG_CONF           (0x0000001B)
#define CM_PROB_FAILED_INSTALL              (0x0000001C)
#define CM_PROB_HARDWARE_DISABLED           (0x0000001D)
#define CM_PROB_CANT_SHARE_IRQ              (0x0000001E)
#define CM_PROB_FAILED_ADD                  (0x0000001F)
#define CM_PROB_DISABLED_SERVICE            (0x00000020)
#define CM_PROB_TRANSLATION_FAILED          (0x00000021)
#define CM_PROB_NO_SOFTCONFIG               (0x00000022)
#define CM_PROB_BIOS_TABLE                  (0x00000023)
#define CM_PROB_IRQ_TRANSLATION_FAILED      (0x00000024)
#define CM_PROB_FAILED_DRIVER_ENTRY         (0x00000025)
#define CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD  (0x00000026)
#define CM_PROB_DRIVER_FAILED_LOAD          (0x00000027)
#define CM_PROB_DRIVER_SERVICE_KEY_INVALID  (0x00000028)
#define CM_PROB_LEGACY_SERVICE_NO_DEVICES   (0x00000029)
#define CM_PROB_DUPLICATE_DEVICE            (0x0000002A)
#define CM_PROB_FAILED_POST_START           (0x0000002B)
#define CM_PROB_HALTED                      (0x0000002C)
#define CM_PROB_PHANTOM                     (0x0000002D)
#define CM_PROB_SYSTEM_SHUTDOWN             (0x0000002E)
#define CM_PROB_HELD_FOR_EJECT              (0x0000002F)
#define CM_PROB_DRIVER_BLOCKED              (0x00000030)
#define CM_PROB_REGISTRY_TOO_LARGE          (0x00000031)
#define CM_PROB_SETPROPERTIES_FAILED        (0x00000032)
#define CM_PROB_WAITING_ON_DEPENDENCY       (0x00000033)
#define CM_PROB_UNSIGNED_DRIVER             (0x00000034)
#define CM_PROB_USED_BY_DEBUGGER            (0x00000035)
#define CM_PROB_DEVICE_RESET                (0x00000036)
#define CM_PROB_CONSOLE_LOCKED              (0x00000037)
#define CM_PROB_NEED_CLASS_CONFIG           (0x00000038)
#define CM_PROB_GUEST_ASSIGNMENT_FAILED     (0x00000039)

#define NUM_CM_PROB_V1  (0x00000025)
#define NUM_CM_PROB_V2  (0x00000032)
#define NUM_CM_PROB_V3  (0x00000033)
#define NUM_CM_PROB_V4  (0x00000034)
#define NUM_CM_PROB_V5  (0x00000035)
#define NUM_CM_PROB_V6  (0x00000036)
#define NUM_CM_PROB_V7  (0x00000037)
#define NUM_CM_PROB_V8  (0x00000039)
#define NUM_CM_PROB_V9  (0x0000003A)

#define NUM_CM_PROB NUM_CM_PROB_V9

#define DN_ROOT_ENUMERATED  (0x00000001)
#define DN_DRIVER_LOADED    (0x00000002)
#define DN_ENUM_LOADED      (0x00000004)
#define DN_STARTED          (0x00000008)
#define DN_MANUAL           (0x00000010)
#define DN_NEED_TO_ENUM     (0x00000020)
#define DN_NOT_FIRST_TIME   (0x00000040)
#define DN_HARDWARE_ENUM    (0x00000080)
#define DN_LIAR             (0x00000100)
#define DN_HAS_MARK         (0x00000200)
#define DN_HAS_PROBLEM      (0x00000400)
#define DN_FILTERED         (0x00000800)
#define DN_MOVED            (0x00001000)
#define DN_DISABLEABLE      (0x00002000)
#define DN_REMOVABLE        (0x00004000)
#define DN_PRIVATE_PROBLEM  (0x00008000)
#define DN_MF_PARENT        (0x00010000)
#define DN_MF_CHILD         (0x00020000)
#define DN_WILL_BE_REMOVED  (0x00040000)

#define DN_NOT_FIRST_TIMEE  0x00080000
#define DN_STOP_FREE_RES    0x00100000
#define DN_REBAL_CANDIDATE  0x00200000
#define DN_BAD_PARTIAL      0x00400000
#define DN_NT_ENUMERATOR    0x00800000
#define DN_NT_DRIVER        0x01000000

#define DN_NEEDS_LOCKING    0x02000000
#define DN_ARM_WAKEUP       0x04000000
#define DN_APM_ENUMERATOR   0x08000000
#define DN_APM_DRIVER       0x10000000
#define DN_SILENT_INSTALL   0x20000000
#define DN_NO_SHOW_IN_DM    0x40000000
#define DN_BOOT_LOG_PROB    0x80000000

#define DN_NEED_RESTART             DN_LIAR
#define DN_DRIVER_BLOCKED           DN_NOT_FIRST_TIME
#define DN_LEGACY_DRIVER            DN_MOVED
#define DN_CHILD_WITH_INVALID_ID    DN_HAS_MARK
#define DN_DEVICE_DISCONNECTED      DN_NEEDS_LOCKING
#define DN_QUERY_REMOVE_PENDING     DN_MF_PARENT
#define DN_QUERY_REMOVE_ACTIVE      DN_MF_CHILD

#define DN_CHANGEABLE_FLAGS         (DN_NOT_FIRST_TIME+DN_HARDWARE_ENUM+DN_HAS_MARK+DN_DISABLEABLE+DN_REMOVABLE+DN_MF_CHILD+DN_MF_PARENT+DN_NOT_FIRST_TIMEE+DN_STOP_FREE_RES+DN_REBAL_CANDIDATE+DN_NT_ENUMERATOR+DN_NT_DRIVER+DN_SILENT_INSTALL+DN_NO_SHOW_IN_DM)

#define LCPRI_FORCECONFIG       (0x00000000)
#define LCPRI_BOOTCONFIG        (0x00000001)
#define LCPRI_DESIRED           (0x00002000)
#define LCPRI_NORMAL            (0x00003000)
#define LCPRI_LASTBESTCONFIG    (0x00003FFF)
#define LCPRI_SUBOPTIMAL        (0x00005000)
#define LCPRI_LASTSOFTCONFIG    (0x00007FFF)
#define LCPRI_RESTART           (0x00008000)
#define LCPRI_REBOOT            (0x00009000)
#define LCPRI_POWEROFF          (0x0000A000)
#define LCPRI_HARDRECONFIG      (0x0000C000)
#define LCPRI_HARDWIRED         (0x0000E000)
#define LCPRI_IMPOSSIBLE        (0x0000F000)
#define LCPRI_DISABLED          (0x0000FFFF)
#define MAX_LCPRI               (0x0000FFFF)

#define CM_DEVICE_PANEL_SIDE_UNKNOWN            (0x00000000)
#define CM_DEVICE_PANEL_SIDE_TOP                (0x00000001)
#define CM_DEVICE_PANEL_SIDE_BOTTOM             (0x00000002)
#define CM_DEVICE_PANEL_SIDE_LEFT               (0x00000003)
#define CM_DEVICE_PANEL_SIDE_RIGHT              (0x00000004)
#define CM_DEVICE_PANEL_SIDE_FRONT              (0x00000005)
#define CM_DEVICE_PANEL_SIDE_BACK               (0x00000006)

#define CM_DEVICE_PANEL_EDGE_UNKNOWN            (0x00000000)
#define CM_DEVICE_PANEL_EDGE_TOP                (0x00000001)
#define CM_DEVICE_PANEL_EDGE_BOTTOM             (0x00000002)
#define CM_DEVICE_PANEL_EDGE_LEFT               (0x00000003)
#define CM_DEVICE_PANEL_EDGE_RIGHT              (0x00000004)

#define CM_DEVICE_PANEL_SHAPE_UNKNOWN           (0x00000000)
#define CM_DEVICE_PANEL_SHAPE_RECTANGLE         (0x00000001)
#define CM_DEVICE_PANEL_SHAPE_OVAL              (0x00000002)

#define CM_DEVICE_PANEL_ORIENTATION_HORIZONTAL  (0x00000000)
#define CM_DEVICE_PANEL_ORIENTATION_VERTICAL    (0x00000001)

#define CM_DEVICE_PANEL_JOINT_TYPE_UNKNOWN      (0x00000000)
#define CM_DEVICE_PANEL_JOINT_TYPE_PLANAR       (0x00000001)
#define CM_DEVICE_PANEL_JOINT_TYPE_HINGE        (0x00000002)
#define CM_DEVICE_PANEL_JOINT_TYPE_PIVOT        (0x00000003)
#define CM_DEVICE_PANEL_JOINT_TYPE_SWIVEL       (0x00000004)

#endif /* _CFG_INCLUDED_ */