| 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 */ |