4 #pragma GCC system_header
10 #define DBT_NO_DISK_SPACE 0x47
11 #define DBT_CONFIGMGPRIVATE 0x7FFF
12 #define DBT_DEVICEARRIVAL 0x8000
13 #define DBT_DEVICEQUERYREMOVE 0x8001
14 #define DBT_DEVICEQUERYREMOVEFAILED 0x8002
15 #define DBT_DEVICEREMOVEPENDING 0x8003
16 #define DBT_DEVICEREMOVECOMPLETE 0x8004
17 #define DBT_DEVICETYPESPECIFIC 0x8005
18 #define DBT_DEVTYP_OEM 0
19 #define DBT_DEVTYP_DEVNODE 1
20 #define DBT_DEVTYP_VOLUME 2
21 #define DBT_DEVTYP_PORT 3
22 #define DBT_DEVTYP_NET 4
23 #if (_WIN32_WINDOWS >= 0x0410 || _WIN32_WINNT >= 0x0500)
24 #define DBT_DEVTYP_DEVICEINTERFACE 5
25 #define DBT_DEVTYP_HANDLE 6
26 #endif /* (_WIN32_WINDOWS >= 0x0410 || _WIN32_WINNT >= 0x0500) */
27 #define DBT_APPYBEGIN 0
29 #define DBT_DEVNODES_CHANGED 7
30 #define DBT_QUERYCHANGECONFIG 0x17
31 #define DBT_CONFIGCHANGED 0x18
32 #define DBT_CONFIGCHANGECANCELED 0x19
33 #define DBT_MONITORCHANGE 0x1B
34 #define DBT_SHELLLOGGEDON 32
35 #define DBT_CONFIGMGAPI32 34
36 #define DBT_VXDINITCOMPLETE 35
37 #define DBT_VOLLOCKQUERYLOCK 0x8041
38 #define DBT_VOLLOCKLOCKTAKEN 0x8042
39 #define DBT_VOLLOCKLOCKFAILED 0x8043
40 #define DBT_VOLLOCKQUERYUNLOCK 0x8044
41 #define DBT_VOLLOCKLOCKRELEASED 0x8045
42 #define DBT_VOLLOCKUNLOCKFAILED 0x8046
43 #define DBT_USERDEFINED 0xFFFF
47 /* Also defined in winuser.h */
48 #define BSM_ALLCOMPONENTS 0
49 #define BSM_APPLICATIONS 8
50 #define BSM_ALLDESKTOPS 16
51 #define BSM_INSTALLABLEDRIVERS 4
52 #define BSM_NETDRIVER 2
54 #define BSF_FLUSHDISK 0x00000004
55 #define BSF_FORCEIFHUNG 0x00000020
56 #define BSF_IGNORECURRENTTASK 0x00000002
57 #define BSF_NOHANG 0x00000008
58 #define BSF_NOTIMEOUTIFNOTHUNG 0x00000040
59 #define BSF_POSTMESSAGE 0x00000010
60 #define BSF_QUERY 0x00000001
61 #if (_WIN32_WINNT >= 0x0500)
62 #define BSF_ALLOWSFW 0x00000080
63 #define BSF_SENDNOTIFYMESSAGE 0x00000100
64 #endif /* (_WIN32_WINNT >= 0x0500) */
65 #if (_WIN32_WINNT >= 0x0501)
66 #define BSF_LUID 0x00000400
67 #define BSF_RETURNHDESK 0x00000200
68 #endif /* (_WIN32_WINNT >= 0x0501) */
70 #define BSF_MSGSRV32ISOK_BIT 31
71 #define BSF_MSGSRV32ISOK 0x80000000
73 typedef struct _DEV_BROADCAST_HDR
{
75 DWORD dbch_devicetype
;
77 } DEV_BROADCAST_HDR
,*PDEV_BROADCAST_HDR
;
78 typedef struct _DEV_BROADCAST_OEM
{
80 DWORD dbco_devicetype
;
82 DWORD dbco_identifier
;
84 } DEV_BROADCAST_OEM
,*PDEV_BROADCAST_OEM
;
85 typedef struct _DEV_BROADCAST_PORT_A
{
87 DWORD dbcp_devicetype
;
90 } DEV_BROADCAST_PORT_A
, *PDEV_BROADCAST_PORT_A
;
91 typedef struct _DEV_BROADCAST_PORT_W
{
93 DWORD dbcp_devicetype
;
96 } DEV_BROADCAST_PORT_W
, *PDEV_BROADCAST_PORT_W
;
97 typedef struct _DEV_BROADCAST_USERDEFINED
{
98 struct _DEV_BROADCAST_HDR dbud_dbh
;
100 } DEV_BROADCAST_USERDEFINED
;
101 typedef struct _DEV_BROADCAST_VOLUME
{
103 DWORD dbcv_devicetype
;
107 } DEV_BROADCAST_VOLUME
,*PDEV_BROADCAST_VOLUME
;
110 typedef DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT
, *PDEV_BROADCAST_PORT
;
112 typedef DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT
, *PDEV_BROADCAST_PORT
;
115 #if (_WIN32_WINDOWS >= 0x0410 || _WIN32_WINNT >= 0x0500)
116 typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A
{
118 DWORD dbcc_devicetype
;
122 } DEV_BROADCAST_DEVICEINTERFACE_A
, *PDEV_BROADCAST_DEVICEINTERFACE_A
;
123 typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W
{
125 DWORD dbcc_devicetype
;
128 wchar_t dbcc_name
[1];
129 } DEV_BROADCAST_DEVICEINTERFACE_W
, *PDEV_BROADCAST_DEVICEINTERFACE_W
;
132 typedef DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE
;
133 typedef PDEV_BROADCAST_DEVICEINTERFACE_W PDEV_BROADCAST_DEVICEINTERFACE
;
135 typedef DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE
;
136 typedef PDEV_BROADCAST_DEVICEINTERFACE_A PDEV_BROADCAST_DEVICEINTERFACE
;
139 typedef struct _DEV_BROADCAST_HANDLE
{
141 DWORD dbch_devicetype
;
144 DWORD dbch_hdevnotify
;
146 LONG dbch_nameoffset
;
148 } DEV_BROADCAST_HANDLE
, *PDEV_BROADCAST_HANDLE
;
149 #endif /* (_WIN32_WINDOWS >= 0x0410 || _WIN32_WINNT >= 0x0500) */