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