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