| 1 | #ifndef _DBT_H | 
|---|
| 2 | #define _DBT_H | 
|---|
| 3 |  | 
|---|
| 4 | #define WM_DEVICECHANGE         0x0219 | 
|---|
| 5 |  | 
|---|
| 6 | #define BSF_QUERY               0x00000001 | 
|---|
| 7 | #define BSF_IGNORECURRENTTASK   0x00000002 | 
|---|
| 8 | #define BSF_FLUSHDISK           0x00000004 | 
|---|
| 9 | #define BSF_NOHANG              0x00000008 | 
|---|
| 10 | #define BSF_POSTMESSAGE         0x00000010 | 
|---|
| 11 | #define BSF_FORCEIFHUNG         0x00000020 | 
|---|
| 12 | #define BSF_NOTIMEOUTIFNOTHUNG  0x00000040 | 
|---|
| 13 | #define BSF_MSGSRV32ISOK        0x80000000 | 
|---|
| 14 | #define BSF_MSGSRV32ISOK_BIT    31 | 
|---|
| 15 |  | 
|---|
| 16 | #define BSM_ALLCOMPONENTS       0x00000000 | 
|---|
| 17 | #define BSM_VXDS                0x00000001 | 
|---|
| 18 | #define BSM_NETDRIVER           0x00000002 | 
|---|
| 19 | #define BSM_INSTALLABLEDRIVERS  0x00000004 | 
|---|
| 20 | #define BSM_APPLICATIONS        0x00000008 | 
|---|
| 21 |  | 
|---|
| 22 | #define DBT_APPYBEGIN                   0x0000 | 
|---|
| 23 | #define DBT_APPYEND                     0x0001 | 
|---|
| 24 | #define DBT_DEVNODES_CHANGED            0x0007 | 
|---|
| 25 | #define DBT_QUERYCHANGECONFIG           0x0017 | 
|---|
| 26 | #define DBT_CONFIGCHANGED               0x0018 | 
|---|
| 27 | #define DBT_CONFIGCHANGECANCELED        0x0019 | 
|---|
| 28 | #define DBT_MONITORCHANGE               0x001B | 
|---|
| 29 | #define DBT_SHELLLOGGEDON               0x0020 | 
|---|
| 30 | #define DBT_CONFIGMGAPI32               0x0022 | 
|---|
| 31 | #define DBT_VXDINITCOMPLETE             0x0023 | 
|---|
| 32 | #define DBT_VOLLOCKQUERYLOCK            0x8041 | 
|---|
| 33 | #define DBT_VOLLOCKLOCKTAKEN            0x8042 | 
|---|
| 34 | #define DBT_VOLLOCKLOCKFAILED           0x8043 | 
|---|
| 35 | #define DBT_VOLLOCKQUERYUNLOCK          0x8044 | 
|---|
| 36 | #define DBT_VOLLOCKLOCKRELEASED         0x8045 | 
|---|
| 37 | #define DBT_VOLLOCKUNLOCKFAILED         0x8046 | 
|---|
| 38 |  | 
|---|
| 39 | typedef struct _DEV_BROADCAST_HDR { | 
|---|
| 40 | DWORD       dbch_size; | 
|---|
| 41 | DWORD       dbch_devicetype; | 
|---|
| 42 | DWORD       dbch_reserved; | 
|---|
| 43 | } DEV_BROADCAST_HDR, *PDEV_BROADCAST_HDR; | 
|---|
| 44 |  | 
|---|
| 45 |  | 
|---|
| 46 | typedef struct VolLockBroadcast VolLockBroadcast; | 
|---|
| 47 | typedef VolLockBroadcast *pVolLockBroadcast; | 
|---|
| 48 | struct VolLockBroadcast { | 
|---|
| 49 | struct  _DEV_BROADCAST_HDR vlb_dbh; | 
|---|
| 50 | DWORD   vlb_owner; | 
|---|
| 51 | BYTE    vlb_perms; | 
|---|
| 52 | BYTE    vlb_lockType; | 
|---|
| 53 | BYTE    vlb_drive; | 
|---|
| 54 | BYTE    vlb_flags; | 
|---|
| 55 | }; | 
|---|
| 56 |  | 
|---|
| 57 | //vlb_lockType | 
|---|
| 58 | #define LOCKP_ALLOW_WRITES              0x01 | 
|---|
| 59 | #define LOCKP_FAIL_WRITES               0x00 | 
|---|
| 60 | #define LOCKP_FAIL_MEM_MAPPING          0x02 | 
|---|
| 61 | #define LOCKP_ALLOW_MEM_MAPPING         0x00 | 
|---|
| 62 | #define LOCKP_USER_MASK                 0x03 | 
|---|
| 63 | #define LOCKP_LOCK_FOR_FORMAT           0x04 | 
|---|
| 64 |  | 
|---|
| 65 | //vlb_flags | 
|---|
| 66 | #define LOCKF_LOGICAL_LOCK              0x00 | 
|---|
| 67 | #define LOCKF_PHYSICAL_LOCK             0x01 | 
|---|
| 68 |  | 
|---|
| 69 | #define DBT_NO_DISK_SPACE               0x0047 | 
|---|
| 70 | #define DBT_LOW_DISK_SPACE              0x0048 | 
|---|
| 71 | #define DBT_CONFIGMGPRIVATE             0x7FFF | 
|---|
| 72 |  | 
|---|
| 73 | #define DBT_DEVICEARRIVAL               0x8000 | 
|---|
| 74 | #define DBT_DEVICEQUERYREMOVE           0x8001 | 
|---|
| 75 | #define DBT_DEVICEQUERYREMOVEFAILED     0x8002 | 
|---|
| 76 | #define DBT_DEVICEREMOVEPENDING         0x8003 | 
|---|
| 77 | #define DBT_DEVICEREMOVECOMPLETE        0x8004 | 
|---|
| 78 | #define DBT_DEVICETYPESPECIFIC          0x8005 | 
|---|
| 79 | #if(WINVER >= 0x040A) | 
|---|
| 80 | #define DBT_CUSTOMEVENT                 0x8006 | 
|---|
| 81 | #endif | 
|---|
| 82 |  | 
|---|
| 83 | #define DBT_DEVTYP_OEM                  0x00000000 | 
|---|
| 84 | #define DBT_DEVTYP_DEVNODE              0x00000001 | 
|---|
| 85 | #define DBT_DEVTYP_VOLUME               0x00000002 | 
|---|
| 86 | #define DBT_DEVTYP_PORT                 0x00000003 | 
|---|
| 87 | #define DBT_DEVTYP_NET                  0x00000004 | 
|---|
| 88 |  | 
|---|
| 89 | #if(WINVER >= 0x040A) | 
|---|
| 90 | #define DBT_DEVTYP_DEVICEINTERFACE      0x00000005 | 
|---|
| 91 | #define DBT_DEVTYP_HANDLE               0x00000006 | 
|---|
| 92 | #endif | 
|---|
| 93 |  | 
|---|
| 94 | typedef struct _DEV_BROADCAST_HEADER { | 
|---|
| 95 | DWORD       dbcd_size; | 
|---|
| 96 | DWORD       dbcd_devicetype; | 
|---|
| 97 | DWORD       dbcd_reserved; | 
|---|
| 98 | } DEV_BROADCAST_HEADER, *PDEV_BROADCAST_HEADER; | 
|---|
| 99 |  | 
|---|
| 100 | typedef struct _DEV_BROADCAST_OEM { | 
|---|
| 101 | DWORD       dbco_size; | 
|---|
| 102 | DWORD       dbco_devicetype; | 
|---|
| 103 | DWORD       dbco_reserved; | 
|---|
| 104 | DWORD       dbco_identifier; | 
|---|
| 105 | DWORD       dbco_suppfunc; | 
|---|
| 106 | } DEV_BROADCAST_OEM, *PDEV_BROADCAST_OEM; | 
|---|
| 107 |  | 
|---|
| 108 |  | 
|---|
| 109 | typedef struct _DEV_BROADCAST_DEVNODE { | 
|---|
| 110 | DWORD       dbcd_size; | 
|---|
| 111 | DWORD       dbcd_devicetype; | 
|---|
| 112 | DWORD       dbcd_reserved; | 
|---|
| 113 | DWORD       dbcd_devnode; | 
|---|
| 114 | } DEV_BROADCAST_DEVNODE, *PDEV_BROADCAST_DEVNODE; | 
|---|
| 115 |  | 
|---|
| 116 | typedef struct _DEV_BROADCAST_VOLUME { | 
|---|
| 117 | DWORD       dbcv_size; | 
|---|
| 118 | DWORD       dbcv_devicetype; | 
|---|
| 119 | DWORD       dbcv_reserved; | 
|---|
| 120 | DWORD       dbcv_unitmask; | 
|---|
| 121 | WORD        dbcv_flags; | 
|---|
| 122 | } DEV_BROADCAST_VOLUME, *PDEV_BROADCAST_VOLUME;; | 
|---|
| 123 |  | 
|---|
| 124 | #define DBTF_MEDIA      0x0001 | 
|---|
| 125 | #define DBTF_NET        0x0002 | 
|---|
| 126 |  | 
|---|
| 127 | typedef struct _DEV_BROADCAST_PORT_A { | 
|---|
| 128 | DWORD       dbcp_size; | 
|---|
| 129 | DWORD       dbcp_devicetype; | 
|---|
| 130 | DWORD       dbcp_reserved; | 
|---|
| 131 | char        dbcp_name[1]; | 
|---|
| 132 | } DEV_BROADCAST_PORT_A, *PDEV_BROADCAST_PORT_A; | 
|---|
| 133 |  | 
|---|
| 134 | typedef struct _DEV_BROADCAST_PORT_W { | 
|---|
| 135 | DWORD       dbcp_size; | 
|---|
| 136 | DWORD       dbcp_devicetype; | 
|---|
| 137 | DWORD       dbcp_reserved; | 
|---|
| 138 | wchar_t     dbcp_name[1]; | 
|---|
| 139 | } DEV_BROADCAST_PORT_W, *PDEV_BROADCAST_PORT_W; | 
|---|
| 140 |  | 
|---|
| 141 | #define DEV_BROADCAST_PORT  WINELIB_NAME_AW(DEV_BROADCAST_PORT) | 
|---|
| 142 | #define PDEV_BROADCAST_PORT WINELIB_NAME_AW(PDEV_BROADCAST_PORT) | 
|---|
| 143 |  | 
|---|
| 144 | typedef struct _DEV_BROADCAST_NET { | 
|---|
| 145 | DWORD       dbcn_size; | 
|---|
| 146 | DWORD       dbcn_devicetype; | 
|---|
| 147 | DWORD       dbcn_reserved; | 
|---|
| 148 | DWORD       dbcn_resource; | 
|---|
| 149 | DWORD       dbcn_flags; | 
|---|
| 150 | } DEV_BROADCAST_NET, *PDEV_BROADCAST_NET; | 
|---|
| 151 |  | 
|---|
| 152 | #if(WINVER >= 0x040A) | 
|---|
| 153 |  | 
|---|
| 154 | typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A { | 
|---|
| 155 | DWORD       dbcc_size; | 
|---|
| 156 | DWORD       dbcc_devicetype; | 
|---|
| 157 | DWORD       dbcc_reserved; | 
|---|
| 158 | GUID        dbcc_classguid; | 
|---|
| 159 | char        dbcc_name[1]; | 
|---|
| 160 | } DEV_BROADCAST_DEVICEINTERFACE_A, *PDEV_BROADCAST_DEVICEINTERFACE_A; | 
|---|
| 161 |  | 
|---|
| 162 | typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W { | 
|---|
| 163 | DWORD       dbcc_size; | 
|---|
| 164 | DWORD       dbcc_devicetype; | 
|---|
| 165 | DWORD       dbcc_reserved; | 
|---|
| 166 | GUID        dbcc_classguid; | 
|---|
| 167 | wchar_t     dbcc_name[1]; | 
|---|
| 168 | } DEV_BROADCAST_DEVICEINTERFACE_W, *PDEV_BROADCAST_DEVICEINTERFACE_W; | 
|---|
| 169 |  | 
|---|
| 170 | #define DEV_BROADCAST_DEVICEINTERFACE  WINELIB_NAME_AW(DEV_BROADCAST_DEVICEINTERFACE) | 
|---|
| 171 | #define PDEV_BROADCAST_DEVICEINTERFACE WINELIB_NAME_AW(PDEV_BROADCAST_DEVICEINTERFACE) | 
|---|
| 172 |  | 
|---|
| 173 | typedef struct _DEV_BROADCAST_HANDLE { | 
|---|
| 174 | DWORD       dbch_size; | 
|---|
| 175 | DWORD       dbch_devicetype; | 
|---|
| 176 | DWORD       dbch_reserved; | 
|---|
| 177 | HANDLE      dbch_handle; | 
|---|
| 178 | DWORD       dbch_hdevnotify; | 
|---|
| 179 | GUID        dbch_eventguid; | 
|---|
| 180 | LONG        dbch_nameoffset; | 
|---|
| 181 | BYTE        dbch_data[1]; | 
|---|
| 182 | } DEV_BROADCAST_HANDLE, *PDEV_BROADCAST_HANDLE; | 
|---|
| 183 |  | 
|---|
| 184 | #endif /* WINVER >= 0x040A */ | 
|---|
| 185 |  | 
|---|
| 186 | #define DBTF_RESOURCE   0x00000001 | 
|---|
| 187 | #define DBTF_XPORT      0x00000002 | 
|---|
| 188 | #define DBTF_SLOWNET    0x00000004 | 
|---|
| 189 |  | 
|---|
| 190 | #define DBT_VPOWERDAPI  0x8100 | 
|---|
| 191 |  | 
|---|
| 192 | #define DBT_USERDEFINED 0xFFFF | 
|---|
| 193 |  | 
|---|
| 194 | typedef struct _DEV_BROADCAST_USERDEFINED { | 
|---|
| 195 | struct _DEV_BROADCAST_HDR dbud_dbh; | 
|---|
| 196 | char        dbud_szName[1]; | 
|---|
| 197 | } DEV_BROADCAST_USERDEFINED, *PDEV_BROADCAST_USERDEFINED; | 
|---|
| 198 |  | 
|---|
| 199 | #endif  // _DBT_H | 
|---|
| 200 |  | 
|---|