| 1 | /* | 
 
 
 
 
 | 2 | * cfg.h | 
 
 
 
 
 | 3 | * | 
 
 
 
 
 | 4 | * PnP Configuration Manager shared definitions between user mode and kernel mode code | 
 
 
 
 
 | 5 | * | 
 
 
 
 
 | 6 | * This file is part of the w32api package. | 
 
 
 
 
 | 7 | * | 
 
 
 
 
 | 8 | * Contributors: | 
 
 
 
 
 | 9 | *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net> | 
 
 
 
 
 | 10 | * | 
 
 
 
 
 | 11 | * THIS SOFTWARE IS NOT COPYRIGHTED | 
 
 
 
 
 | 12 | * | 
 
 
 
 
 | 13 | * This source code is offered for use in the public domain. You may | 
 
 
 
 
 | 14 | * use, modify or distribute it freely. | 
 
 
 
 
 | 15 | * | 
 
 
 
 
 | 16 | * This code is distributed in the hope that it will be useful but | 
 
 
 
 
 | 17 | * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | 
 
 
 
 
 | 18 | * DISCLAIMED. This includes but is not limited to warranties of | 
 
 
 
 
 | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 
 
 
 
 
 | 20 | * | 
 
 
 
 
 | 21 | */ | 
 
 
 
 
 | 22 |  | 
 
 
 
 
 | 23 | #ifndef __CFG_H | 
 
 
 
 
 | 24 | #define __CFG_H | 
 
 
 
 
 | 25 |  | 
 
 
 
 
 | 26 | #if __GNUC__ >=3 | 
 
 
 
 
 | 27 | #pragma GCC system_header | 
 
 
 
 
 | 28 | #endif | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | #ifdef __cplusplus | 
 
 
 
 
 | 31 | extern "C" { | 
 
 
 
 
 | 32 | #endif | 
 
 
 
 
 | 33 |  | 
 
 
 
 
 | 34 | #define CM_PROB_NOT_CONFIGURED                                          0x00000001 | 
 
 
 
 
 | 35 | #define CM_PROB_DEVLOADER_FAILED            0x00000002 | 
 
 
 
 
 | 36 | #define CM_PROB_OUT_OF_MEMORY               0x00000003 | 
 
 
 
 
 | 37 | #define CM_PROB_ENTRY_IS_WRONG_TYPE         0x00000004 | 
 
 
 
 
 | 38 | #define CM_PROB_LACKED_ARBITRATOR           0x00000005 | 
 
 
 
 
 | 39 | #define CM_PROB_BOOT_CONFIG_CONFLICT        0x00000006 | 
 
 
 
 
 | 40 | #define CM_PROB_FAILED_FILTER               0x00000007 | 
 
 
 
 
 | 41 | #define CM_PROB_DEVLOADER_NOT_FOUND         0x00000008 | 
 
 
 
 
 | 42 | #define CM_PROB_INVALID_DATA                0x00000009 | 
 
 
 
 
 | 43 | #define CM_PROB_FAILED_START                0x0000000A | 
 
 
 
 
 | 44 | #define CM_PROB_LIAR                        0x0000000B | 
 
 
 
 
 | 45 | #define CM_PROB_NORMAL_CONFLICT             0x0000000C | 
 
 
 
 
 | 46 | #define CM_PROB_NOT_VERIFIED                0x0000000D | 
 
 
 
 
 | 47 | #define CM_PROB_NEED_RESTART                0x0000000E | 
 
 
 
 
 | 48 | #define CM_PROB_REENUMERATION               0x0000000F | 
 
 
 
 
 | 49 | #define CM_PROB_PARTIAL_LOG_CONF            0x00000010 | 
 
 
 
 
 | 50 | #define CM_PROB_UNKNOWN_RESOURCE            0x00000011 | 
 
 
 
 
 | 51 | #define CM_PROB_REINSTALL                   0x00000012 | 
 
 
 
 
 | 52 | #define CM_PROB_REGISTRY                    0x00000013 | 
 
 
 
 
 | 53 | #define CM_PROB_VXDLDR                      0x00000014 | 
 
 
 
 
 | 54 | #define CM_PROB_WILL_BE_REMOVED             0x00000015 | 
 
 
 
 
 | 55 | #define CM_PROB_DISABLED                    0x00000016 | 
 
 
 
 
 | 56 | #define CM_PROB_DEVLOADER_NOT_READY         0x00000017 | 
 
 
 
 
 | 57 | #define CM_PROB_DEVICE_NOT_THERE            0x00000018 | 
 
 
 
 
 | 58 | #define CM_PROB_MOVED                       0x00000019 | 
 
 
 
 
 | 59 | #define CM_PROB_TOO_EARLY                   0x0000001A | 
 
 
 
 
 | 60 | #define CM_PROB_NO_VALID_LOG_CONF           0x0000001B | 
 
 
 
 
 | 61 | #define CM_PROB_FAILED_INSTALL              0x0000001C | 
 
 
 
 
 | 62 | #define CM_PROB_HARDWARE_DISABLED           0x0000001D | 
 
 
 
 
 | 63 | #define CM_PROB_CANT_SHARE_IRQ              0x0000001E | 
 
 
 
 
 | 64 | #define CM_PROB_FAILED_ADD                  0x0000001F | 
 
 
 
 
 | 65 | #define CM_PROB_DISABLED_SERVICE                0x00000020 | 
 
 
 
 
 | 66 | #define CM_PROB_TRANSLATION_FAILED              0x00000021 | 
 
 
 
 
 | 67 | #define CM_PROB_NO_SOFTCONFIG                   0x00000022 | 
 
 
 
 
 | 68 | #define CM_PROB_BIOS_TABLE                      0x00000023 | 
 
 
 
 
 | 69 | #define CM_PROB_IRQ_TRANSLATION_FAILED          0x00000024 | 
 
 
 
 
 | 70 | #define CM_PROB_FAILED_DRIVER_ENTRY             0x00000025 | 
 
 
 
 
 | 71 | #define CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD      0x00000026 | 
 
 
 
 
 | 72 | #define CM_PROB_DRIVER_FAILED_LOAD          0x00000027 | 
 
 
 
 
 | 73 | #define CM_PROB_DRIVER_SERVICE_KEY_INVALID  0x00000028 | 
 
 
 
 
 | 74 | #define CM_PROB_LEGACY_SERVICE_NO_DEVICES   0x00000029 | 
 
 
 
 
 | 75 | #define CM_PROB_DUPLICATE_DEVICE            0x0000002A | 
 
 
 
 
 | 76 | #define CM_PROB_FAILED_POST_START           0x0000002B | 
 
 
 
 
 | 77 | #define CM_PROB_HALTED                      0x0000002C | 
 
 
 
 
 | 78 | #define CM_PROB_PHANTOM                     0x0000002D | 
 
 
 
 
 | 79 | #define CM_PROB_SYSTEM_SHUTDOWN             0x0000002E | 
 
 
 
 
 | 80 | #define CM_PROB_HELD_FOR_EJECT              0x0000002F | 
 
 
 
 
 | 81 | #define CM_PROB_DRIVER_BLOCKED              0x00000030 | 
 
 
 
 
 | 82 | #define CM_PROB_REGISTRY_TOO_LARGE              0x00000031 | 
 
 
 
 
 | 83 |  | 
 
 
 
 
 | 84 | #define LCPRI_FORCECONFIG                 0x00000000 | 
 
 
 
 
 | 85 | #define LCPRI_BOOTCONFIG                  0x00000001 | 
 
 
 
 
 | 86 | #define LCPRI_DESIRED                     0x00002000 | 
 
 
 
 
 | 87 | #define LCPRI_NORMAL                      0x00003000 | 
 
 
 
 
 | 88 | #define LCPRI_LASTBESTCONFIG              0x00003FFF | 
 
 
 
 
 | 89 | #define LCPRI_SUBOPTIMAL                  0x00005000 | 
 
 
 
 
 | 90 | #define LCPRI_LASTSOFTCONFIG              0x00007FFF | 
 
 
 
 
 | 91 | #define LCPRI_RESTART                     0x00008000 | 
 
 
 
 
 | 92 | #define LCPRI_REBOOT                      0x00009000 | 
 
 
 
 
 | 93 | #define LCPRI_POWEROFF                    0x0000A000 | 
 
 
 
 
 | 94 | #define LCPRI_HARDRECONFIG                0x0000C000 | 
 
 
 
 
 | 95 | #define LCPRI_HARDWIRED                   0x0000E000 | 
 
 
 
 
 | 96 | #define LCPRI_IMPOSSIBLE                  0x0000F000 | 
 
 
 
 
 | 97 | #define LCPRI_DISABLED                    0x0000FFFF | 
 
 
 
 
 | 98 | #define MAX_LCPRI                         0x0000FFFF | 
 
 
 
 
 | 99 |  | 
 
 
 
 
 | 100 | #define DN_ROOT_ENUMERATED      0x00000001      /* Was enumerated by ROOT */ | 
 
 
 
 
 | 101 | #define DN_DRIVER_LOADED        0x00000002      /* Has Register_Device_Driver */ | 
 
 
 
 
 | 102 | #define DN_ENUM_LOADED          0x00000004      /* Has Register_Enumerator */ | 
 
 
 
 
 | 103 | #define DN_STARTED              0x00000008      /* Is currently configured */ | 
 
 
 
 
 | 104 | #define DN_MANUAL               0x00000010      /* Manually installed */ | 
 
 
 
 
 | 105 | #define DN_NEED_TO_ENUM         0x00000020      /* May need reenumeration */ | 
 
 
 
 
 | 106 | #define DN_NOT_FIRST_TIME       0x00000040      /* Has received a config */ | 
 
 
 
 
 | 107 | #define DN_HARDWARE_ENUM        0x00000080      /* Enum generates hardware ID */ | 
 
 
 
 
 | 108 | #define DN_LIAR                 0x00000100      /* Lied about can reconfig once */ | 
 
 
 
 
 | 109 | #define DN_HAS_MARK             0x00000200      /* Not CM_Create_DevNode lately */ | 
 
 
 
 
 | 110 | #define DN_HAS_PROBLEM          0x00000400      /* Need device installer */ | 
 
 
 
 
 | 111 | #define DN_FILTERED             0x00000800      /* Is filtered */ | 
 
 
 
 
 | 112 | #define DN_MOVED                0x00001000      /* Has been moved */ | 
 
 
 
 
 | 113 | #define DN_DISABLEABLE          0x00002000      /* Can be rebalanced */ | 
 
 
 
 
 | 114 | #define DN_REMOVABLE            0x00004000      /* Can be removed */ | 
 
 
 
 
 | 115 | #define DN_PRIVATE_PROBLEM      0x00008000      /* Has a private problem */ | 
 
 
 
 
 | 116 | #define DN_MF_PARENT            0x00010000      /* Multi function parent */ | 
 
 
 
 
 | 117 | #define DN_MF_CHILD             0x00020000      /* Multi function child */ | 
 
 
 
 
 | 118 | #define DN_WILL_BE_REMOVED      0x00040000      /* Devnode is being removed */ | 
 
 
 
 
 | 119 |  | 
 
 
 
 
 | 120 | typedef enum _PNP_VETO_TYPE { | 
 
 
 
 
 | 121 | PNP_VetoTypeUnknown, | 
 
 
 
 
 | 122 | PNP_VetoLegacyDevice, | 
 
 
 
 
 | 123 | PNP_VetoPendingClose, | 
 
 
 
 
 | 124 | PNP_VetoWindowsApp, | 
 
 
 
 
 | 125 | PNP_VetoWindowsService, | 
 
 
 
 
 | 126 | PNP_VetoOutstandingOpen, | 
 
 
 
 
 | 127 | PNP_VetoDevice, | 
 
 
 
 
 | 128 | PNP_VetoDriver, | 
 
 
 
 
 | 129 | PNP_VetoIllegalDeviceRequest, | 
 
 
 
 
 | 130 | PNP_VetoInsufficientPower, | 
 
 
 
 
 | 131 | PNP_VetoNonDisableable, | 
 
 
 
 
 | 132 | PNP_VetoLegacyDriver | 
 
 
 
 
 | 133 | } PNP_VETO_TYPE, *PPNP_VETO_TYPE; | 
 
 
 
 
 | 134 |  | 
 
 
 
 
 | 135 | #ifdef __cplusplus | 
 
 
 
 
 | 136 | } | 
 
 
 
 
 | 137 | #endif | 
 
 
 
 
 | 138 |  | 
 
 
 
 
 | 139 | #endif /* __CFG_H */ |