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