]> git.proxmox.com Git - rustc.git/blame - vendor/winapi/src/um/cfgmgr32.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / vendor / winapi / src / um / cfgmgr32.rs
CommitLineData
ff7c6d11
XL
1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6//! user APIs for the Configuration Manager
7use shared::basetsd::{DWORD_PTR, ULONG32, ULONG64, ULONG_PTR};
8use shared::cfg::PPNP_VETO_TYPE;
60c5eb7d 9use shared::devpropdef::{DEVPROPKEY, DEVPROPTYPE};
ff7c6d11 10use shared::guiddef::{GUID, LPGUID};
60c5eb7d 11use shared::minwindef::{BOOL, BYTE, DWORD, MAX_PATH, PBOOL, PBYTE, PHKEY, PULONG, ULONG, WORD};
ff7c6d11
XL
12use um::winnt::{
13 ANYSIZE_ARRAY, CHAR, DWORDLONG, HANDLE, LARGE_INTEGER, LONG, LPCSTR, LPCWSTR, LPSTR, LPWSTR,
14 PCHAR, PCSTR, PCWSTR, PDWORDLONG, PSTR, PVOID, PWCHAR, PWSTR, ULONGLONG, VOID, WCHAR
15};
16use um::winreg::REGSAM;
17pub type PCVOID = *const VOID;
18pub const MAX_DEVICE_ID_LEN: usize = 200;
19pub const MAX_DEVNODE_ID_LEN: usize = MAX_DEVICE_ID_LEN;
20pub const MAX_GUID_STRING_LEN: usize = 39;
21pub const MAX_CLASS_NAME_LEN: usize = 32;
22pub const MAX_PROFILE_LEN: usize = 80;
23pub const MAX_CONFIG_VALUE: DWORD = 9999;
24pub const MAX_INSTANCE_VALUE: DWORD = 9999;
25pub const MAX_MEM_REGISTERS: DWORD = 9;
26pub const MAX_IO_PORTS: DWORD = 20;
27pub const MAX_IRQS: DWORD = 7;
28pub const MAX_DMA_CHANNELS: DWORD = 7;
29pub const DWORD_MAX: DWORD = 0xffffffff;
30pub const DWORDLONG_MAX: DWORDLONG = 0xffffffffffffffff;
31pub const CONFIGMG_VERSION: DWORD = 0x0400;
32pub type RETURN_TYPE = DWORD;
33pub type CONFIGRET = RETURN_TYPE;
34pub type DEVNODE = DWORD;
35pub type DEVINST = DWORD;
36pub type PDEVNODE = *mut DEVNODE;
37pub type PDEVINST = *mut DEVNODE;
38pub type DEVNODEID_A = *mut CHAR;
39pub type DEVINSTID_A = *mut CHAR;
40pub type DEVNODEID_W = *mut WCHAR;
41pub type DEVINSTID_W = *mut WCHAR;
42pub type LOG_CONF = DWORD_PTR;
43pub type PLOG_CONF = *mut LOG_CONF;
44pub type RES_DES = DWORD_PTR;
45pub type PRES_DES = *mut RES_DES;
46pub type RESOURCEID = ULONG;
47pub type PRESOURCEID = *mut RESOURCEID;
48pub type PRIORITY = ULONG;
49pub type PPRIORITY = *mut PRIORITY;
50pub type RANGE_LIST = DWORD_PTR;
51pub type PRANGE_LIST = *mut RANGE_LIST;
52pub type RANGE_ELEMENT = DWORD_PTR;
53pub type PRANGE_ELEMENT = *mut RANGE_ELEMENT;
54pub type HMACHINE = HANDLE;
55pub type PHMACHINE = *mut HMACHINE;
56pub type CONFLICT_LIST = ULONG_PTR;
57pub type PCONFLICT_LIST = *mut CONFLICT_LIST;
58STRUCT!{struct CONFLICT_DETAILS_A {
59 CD_ulSize: ULONG,
60 CD_ulMask: ULONG,
61 CD_dnDevInst: DEVINST,
62 CD_rdResDes: RES_DES,
63 CD_ulFlags: ULONG,
64 CD_szDescription: [CHAR; MAX_PATH],
65}}
66pub type PCONFLICT_DETAILS_A = *mut CONFLICT_DETAILS_A;
67STRUCT!{struct CONFLICT_DETAILS_W {
68 CD_ulSize: ULONG,
69 CD_ulMask: ULONG,
70 CD_dnDevInst: DEVINST,
71 CD_rdResDes: RES_DES,
72 CD_ulFlags: ULONG,
73 CD_szDescription: [WCHAR; MAX_PATH],
74}}
75pub type PCONFLICT_DETAILS_W = *mut CONFLICT_DETAILS_W;
76pub const CM_CDMASK_DEVINST: ULONG = 0x00000001;
77pub const CM_CDMASK_RESDES: ULONG = 0x00000002;
78pub const CM_CDMASK_FLAGS: ULONG = 0x00000004;
79pub const CM_CDMASK_DESCRIPTION: ULONG = 0x00000008;
80pub const CM_CDMASK_VALID: ULONG = 0x0000000F;
81pub const CM_CDFLAGS_DRIVER: ULONG = 0x00000001;
82pub const CM_CDFLAGS_ROOT_OWNED: ULONG = 0x00000002;
83pub const CM_CDFLAGS_RESERVED: ULONG = 0x00000004;
84pub type REGDISPOSITION = ULONG;
85pub const mMD_MemoryType: DWORD = 0x1;
86pub const fMD_MemoryType: DWORD = mMD_MemoryType;
87pub const fMD_ROM: DWORD = 0x0;
88pub const fMD_RAM: DWORD = 0x1;
89pub const mMD_32_24: DWORD = 0x2;
90pub const fMD_32_24: DWORD = mMD_32_24;
91pub const fMD_24: DWORD = 0x0;
92pub const fMD_32: DWORD = 0x2;
93pub const mMD_Prefetchable: DWORD = 0x4;
94pub const fMD_Prefetchable: DWORD = mMD_Prefetchable;
95pub const fMD_Pref: DWORD = mMD_Prefetchable;
96pub const fMD_PrefetchDisallowed: DWORD = 0x0;
97pub const fMD_PrefetchAllowed: DWORD = 0x4;
98pub const mMD_Readable: DWORD = 0x8;
99pub const fMD_Readable: DWORD = mMD_Readable;
100pub const fMD_ReadAllowed: DWORD = 0x0;
101pub const fMD_ReadDisallowed: DWORD = 0x8;
102pub const mMD_CombinedWrite: DWORD = 0x10;
103pub const fMD_CombinedWrite: DWORD = mMD_CombinedWrite;
104pub const fMD_CombinedWriteDisallowed: DWORD = 0x0;
105pub const fMD_CombinedWriteAllowed: DWORD = 0x10;
106pub const mMD_Cacheable: DWORD = 0x20;
107pub const fMD_NonCacheable: DWORD = 0x0;
108pub const fMD_Cacheable: DWORD = 0x20;
109pub const fMD_WINDOW_DECODE: DWORD = 0x40;
110pub const fMD_MEMORY_BAR: DWORD = 0x80;
8faf50e0 111STRUCT!{#[repr(packed)] struct MEM_RANGE {
ff7c6d11
XL
112 MR_Align: DWORDLONG,
113 MR_nBytes: ULONG,
114 MR_Min: DWORDLONG,
115 MR_Max: DWORDLONG,
116 MR_Flags: DWORD,
117 MR_Reserved: DWORD,
118}}
119pub type PMEM_RANGE = *mut MEM_RANGE;
8faf50e0 120STRUCT!{#[repr(packed)] struct MEM_DES {
ff7c6d11
XL
121 MD_Count: DWORD,
122 MD_Type: DWORD,
123 MD_Alloc_Base: DWORDLONG,
124 MD_Alloc_End: DWORDLONG,
125 MD_Flags: DWORD,
126 MD_Reserved: DWORD,
127}}
128pub type PMEM_DES = *mut MEM_DES;
8faf50e0 129STRUCT!{#[repr(packed)] struct MEM_RESOURCE {
ff7c6d11
XL
130 MEM_Header: MEM_DES,
131 MEM_Data: [MEM_RANGE; ANYSIZE_ARRAY],
132}}
133pub type PMEM_RESOURCE = *mut MEM_RESOURCE;
8faf50e0 134STRUCT!{#[repr(packed)] struct MEM_LARGE_RANGE {
ff7c6d11
XL
135 MLR_Align: DWORDLONG,
136 MLR_nBytes: ULONGLONG,
137 MLR_Min: DWORDLONG,
138 MLR_Max: DWORDLONG,
139 MLR_Flags: DWORD,
140 MLR_Reserved: DWORD,
141}}
142pub type PMEM_LARGE_RANGE = *mut MEM_LARGE_RANGE;
8faf50e0 143STRUCT!{#[repr(packed)] struct MEM_LARGE_DES {
ff7c6d11
XL
144 MLD_Count: DWORD,
145 MLD_Type: DWORD,
146 MLD_Alloc_Base: DWORDLONG,
147 MLD_Alloc_End: DWORDLONG,
148 MLD_Flags: DWORD,
149 MLD_Reserved: DWORD,
150}}
151pub type PMEM_LARGE_DES = *mut MEM_LARGE_DES;
8faf50e0 152STRUCT!{#[repr(packed)] struct MEM_LARGE_RESOURCE {
ff7c6d11
XL
153 MEM_LARGE_Header: MEM_LARGE_DES,
154 MEM_LARGE_Data: [MEM_LARGE_RANGE; ANYSIZE_ARRAY],
155}}
156pub type PMEM_LARGE_RESOURCE = *mut MEM_LARGE_RESOURCE;
157pub const fIOD_PortType: DWORD = 0x1;
158pub const fIOD_Memory: DWORD = 0x0;
159pub const fIOD_IO: DWORD = 0x1;
160pub const fIOD_DECODE: DWORD = 0x00fc;
161pub const fIOD_10_BIT_DECODE: DWORD = 0x0004;
162pub const fIOD_12_BIT_DECODE: DWORD = 0x0008;
163pub const fIOD_16_BIT_DECODE: DWORD = 0x0010;
164pub const fIOD_POSITIVE_DECODE: DWORD = 0x0020;
165pub const fIOD_PASSIVE_DECODE: DWORD = 0x0040;
166pub const fIOD_WINDOW_DECODE: DWORD = 0x0080;
167pub const fIOD_PORT_BAR: DWORD = 0x0100;
168pub const IO_ALIAS_10_BIT_DECODE: DWORDLONG = 0x00000004;
169pub const IO_ALIAS_12_BIT_DECODE: DWORDLONG = 0x00000010;
170pub const IO_ALIAS_16_BIT_DECODE: DWORDLONG = 0x00000000;
171pub const IO_ALIAS_POSITIVE_DECODE: DWORDLONG = 0x000000FF;
8faf50e0 172STRUCT!{#[repr(packed)] struct IO_RANGE {
ff7c6d11
XL
173 IOR_Align: DWORDLONG,
174 IOR_nPorts: DWORD,
175 IOR_Min: DWORDLONG,
176 IOR_Max: DWORDLONG,
177 IOR_RangeFlags: DWORD,
178 IOR_Alias: DWORDLONG,
179}}
180pub type PIO_RANGE = *mut IO_RANGE;
8faf50e0 181STRUCT!{#[repr(packed)] struct IO_DES {
ff7c6d11
XL
182 IOD_Count: DWORD,
183 IOD_Type: DWORD,
184 IOD_Alloc_Base: DWORDLONG,
185 IOD_Alloc_End: DWORDLONG,
186 IOD_DesFlags: DWORD,
187}}
188pub type PIO_DES = *mut IO_DES;
8faf50e0 189STRUCT!{#[repr(packed)] struct IO_RESOURCE {
ff7c6d11
XL
190 IO_Header: IO_DES,
191 IO_Data: [IO_RANGE; ANYSIZE_ARRAY],
192}}
193pub type PIO_RESOURCE = *mut IO_RESOURCE;
194pub const mDD_Width: ULONG = 0x3;
195pub const fDD_BYTE: ULONG = 0x0;
196pub const fDD_WORD: ULONG = 0x1;
197pub const fDD_DWORD: ULONG = 0x2;
198pub const fDD_BYTE_AND_WORD: ULONG = 0x3;
199pub const mDD_BusMaster: ULONG = 0x4;
200pub const fDD_NoBusMaster: ULONG = 0x0;
201pub const fDD_BusMaster: ULONG = 0x4;
202pub const mDD_Type: ULONG = 0x18;
203pub const fDD_TypeStandard: ULONG = 0x00;
204pub const fDD_TypeA: ULONG = 0x08;
205pub const fDD_TypeB: ULONG = 0x10;
206pub const fDD_TypeF: ULONG = 0x18;
8faf50e0 207STRUCT!{#[repr(packed)] struct DMA_RANGE {
ff7c6d11
XL
208 DR_Min: ULONG,
209 DR_Max: ULONG,
210 DR_Flags: ULONG,
211}}
212pub type PDMA_RANGE = *mut DMA_RANGE;
8faf50e0 213STRUCT!{#[repr(packed)] struct DMA_DES {
ff7c6d11
XL
214 DD_Count: DWORD,
215 DD_Type: DWORD,
216 DD_Flags: DWORD,
217 DD_Alloc_Chan: ULONG,
218}}
219pub type PDMA_DES = *mut DMA_DES;
8faf50e0 220STRUCT!{#[repr(packed)] struct DMA_RESOURCE {
ff7c6d11
XL
221 DMA_Header: DMA_DES,
222 DMA_Data: [DMA_RANGE; ANYSIZE_ARRAY],
223}}
224pub type PDMA_RESOURCE = *mut DMA_RESOURCE;
225pub const mIRQD_Share: ULONG = 0x1;
226pub const fIRQD_Exclusive: ULONG = 0x0;
227pub const fIRQD_Share: ULONG = 0x1;
228pub const fIRQD_Share_Bit: ULONG = 0;
229pub const fIRQD_Level_Bit: ULONG = 1;
230pub const mIRQD_Edge_Level: ULONG = 0x2;
231pub const fIRQD_Level: ULONG = 0x0;
232pub const fIRQD_Edge: ULONG = 0x2;
8faf50e0 233STRUCT!{#[repr(packed)] struct IRQ_RANGE {
ff7c6d11
XL
234 IRQR_Min: ULONG,
235 IRQR_Max: ULONG,
236 IRQR_Flags: ULONG,
237}}
238pub type PIRQ_RANGE = *mut IRQ_RANGE;
8faf50e0 239STRUCT!{#[repr(packed)] struct IRQ_DES_32 {
ff7c6d11
XL
240 IRQD_Count: DWORD,
241 IRQD_Type: DWORD,
242 IRQD_Flags: DWORD,
243 IRQD_Alloc_Num: ULONG,
244 IRQD_Affinity: ULONG32,
245}}
246pub type PIRQ_DES_32 = *mut IRQ_DES_32;
8faf50e0 247STRUCT!{#[repr(packed)] struct IRQ_DES_64 {
ff7c6d11
XL
248 IRQD_Count: DWORD,
249 IRQD_Type: DWORD,
250 IRQD_Flags: DWORD,
251 IRQD_Alloc_Num: ULONG,
252 IRQD_Affinity: ULONG64,
253}}
254pub type PIRQ_DES_64 = *mut IRQ_DES_64;
8faf50e0 255STRUCT!{#[repr(packed)] struct IRQ_RESOURCE_32 {
ff7c6d11
XL
256 IRQ_Header: IRQ_DES_32,
257 IRQ_Data: [IRQ_RANGE; ANYSIZE_ARRAY],
258}}
259pub type PIRQ_RESOURCE_32 = *mut IRQ_RESOURCE_32;
8faf50e0 260STRUCT!{#[repr(packed)] struct IRQ_RESOURCE_64 {
ff7c6d11
XL
261 IRQ_Header: IRQ_DES_64,
262 IRQ_Data: [IRQ_RANGE; ANYSIZE_ARRAY],
263}}
264pub type PIRQ_RESOURCE_64 = *mut IRQ_RESOURCE_64;
8faf50e0 265STRUCT!{#[repr(packed)] struct DEVPRIVATE_RANGE {
ff7c6d11
XL
266 PR_Data1: DWORD,
267 PR_Data2: DWORD,
268 PR_Data3: DWORD,
269}}
270pub type PDEVPRIVATE_RANGE = *mut DEVPRIVATE_RANGE;
8faf50e0 271STRUCT!{#[repr(packed)] struct DEVPRIVATE_DES {
ff7c6d11
XL
272 PD_Count: DWORD,
273 PD_Type: DWORD,
274 PD_Data1: DWORD,
275 PD_Data2: DWORD,
276 PD_Data3: DWORD,
277 PD_Flags: DWORD,
278}}
279pub type PDEVPRIVATE_DES = *mut DEVPRIVATE_DES;
8faf50e0 280STRUCT!{#[repr(packed)] struct DEVPRIVATE_RESOURCE {
ff7c6d11
XL
281 PRV_Header: DEVPRIVATE_DES,
282 PRV_Data: [DEVPRIVATE_RANGE; ANYSIZE_ARRAY],
283}}
284pub type PDEVPRIVATE_RESOURCE = *mut DEVPRIVATE_RESOURCE;
8faf50e0 285STRUCT!{#[repr(packed)] struct CS_DES {
ff7c6d11
XL
286 CSD_SignatureLength: DWORD,
287 CSD_LegacyDataOffset: DWORD,
288 CSD_LegacyDataSize: DWORD,
289 CSD_Flags: DWORD,
290 CSD_ClassGuid: GUID,
291 CSD_Signature: [BYTE; ANYSIZE_ARRAY],
292}}
293pub type PCS_DES = *mut CS_DES;
8faf50e0 294STRUCT!{#[repr(packed)] struct CS_RESOURCE {
ff7c6d11
XL
295 CS_Header: CS_DES,
296}}
297pub type PCS_RESOURCE = *mut CS_RESOURCE;
298pub const mPCD_IO_8_16: DWORD = 0x1;
299pub const fPCD_IO_8: DWORD = 0x0;
300pub const fPCD_IO_16: DWORD = 0x1;
301pub const mPCD_MEM_8_16: DWORD = 0x2;
302pub const fPCD_MEM_8: DWORD = 0x0;
303pub const fPCD_MEM_16: DWORD = 0x2;
304pub const mPCD_MEM_A_C: DWORD = 0xC;
305pub const fPCD_MEM1_A: DWORD = 0x4;
306pub const fPCD_MEM2_A: DWORD = 0x8;
307pub const fPCD_IO_ZW_8: DWORD = 0x10;
308pub const fPCD_IO_SRC_16: DWORD = 0x20;
309pub const fPCD_IO_WS_16: DWORD = 0x40;
310pub const mPCD_MEM_WS: DWORD = 0x300;
311pub const fPCD_MEM_WS_ONE: DWORD = 0x100;
312pub const fPCD_MEM_WS_TWO: DWORD = 0x200;
313pub const fPCD_MEM_WS_THREE: DWORD = 0x300;
314pub const fPCD_MEM_A: DWORD = 0x4;
315pub const fPCD_ATTRIBUTES_PER_WINDOW: DWORD = 0x8000;
316pub const fPCD_IO1_16: DWORD = 0x00010000;
317pub const fPCD_IO1_ZW_8: DWORD = 0x00020000;
318pub const fPCD_IO1_SRC_16: DWORD = 0x00040000;
319pub const fPCD_IO1_WS_16: DWORD = 0x00080000;
320pub const fPCD_IO2_16: DWORD = 0x00100000;
321pub const fPCD_IO2_ZW_8: DWORD = 0x00200000;
322pub const fPCD_IO2_SRC_16: DWORD = 0x00400000;
323pub const fPCD_IO2_WS_16: DWORD = 0x00800000;
324pub const mPCD_MEM1_WS: DWORD = 0x03000000;
325pub const fPCD_MEM1_WS_TWO: DWORD = 0x02000000;
326pub const fPCD_MEM1_WS_THREE: DWORD = 0x03000000;
327pub const fPCD_MEM1_16: DWORD = 0x04000000;
328pub const mPCD_MEM2_WS: DWORD = 0x30000000;
329pub const fPCD_MEM2_WS_ONE: DWORD = 0x10000000;
330pub const fPCD_MEM2_WS_TWO: DWORD = 0x20000000;
331pub const fPCD_MEM2_WS_THREE: DWORD = 0x30000000;
332pub const fPCD_MEM2_16: DWORD = 0x40000000;
333pub const PCD_MAX_MEMORY: usize = 2;
334pub const PCD_MAX_IO: usize = 2;
8faf50e0 335STRUCT!{#[repr(packed)] struct PCCARD_DES {
ff7c6d11
XL
336 PCD_Count: DWORD,
337 PCD_Type: DWORD,
338 PCD_Flags: DWORD,
339 PCD_ConfigIndex: BYTE,
340 PCD_Reserved: [BYTE; 3],
341 PCD_MemoryCardBase1: DWORD,
342 PCD_MemoryCardBase2: DWORD,
343 PCD_MemoryCardBase: [DWORD; PCD_MAX_MEMORY],
344 PCD_MemoryFlags: [WORD; PCD_MAX_MEMORY],
345 PCD_IoFlags: [BYTE; PCD_MAX_IO],
346}}
347pub type PPCCARD_DES = *mut PCCARD_DES;
8faf50e0 348STRUCT!{#[repr(packed)] struct PCCARD_RESOURCE {
ff7c6d11
XL
349 PcCard_Header: PCCARD_DES,
350}}
351pub type PPCCARD_RESOURCE = *mut PCCARD_RESOURCE;
352pub const mPMF_AUDIO_ENABLE: DWORD = 0x8;
353pub const fPMF_AUDIO_ENABLE: DWORD = 0x8;
8faf50e0 354STRUCT!{#[repr(packed)] struct MFCARD_DES {
ff7c6d11
XL
355 PMF_Count: DWORD,
356 PMF_Type: DWORD,
357 PMF_Flags: DWORD,
358 PMF_ConfigOptions: BYTE,
359 PMF_IoResourceIndex: BYTE,
360 PMF_Reserved: [BYTE; 2],
361 PMF_ConfigRegisterBase: DWORD,
362}}
363pub type PMFCARD_DES = *mut MFCARD_DES;
8faf50e0 364STRUCT!{#[repr(packed)] struct MFCARD_RESOURCE {
ff7c6d11
XL
365 MfCard_Header: MFCARD_DES,
366}}
367pub type PMFCARD_RESOURCE = *mut MFCARD_RESOURCE;
8faf50e0 368STRUCT!{#[repr(packed)] struct BUSNUMBER_RANGE {
ff7c6d11
XL
369 BUSR_Min: ULONG,
370 BUSR_Max: ULONG,
371 BUSR_nBusNumbers: ULONG,
372 BUSR_Flags: ULONG,
373}}
374pub type PBUSNUMBER_RANGE = *mut BUSNUMBER_RANGE;
8faf50e0 375STRUCT!{#[repr(packed)] struct BUSNUMBER_DES {
ff7c6d11
XL
376 BUSD_Count: DWORD,
377 BUSD_Type: DWORD,
378 BUSD_Flags: DWORD,
379 BUSD_Alloc_Base: ULONG,
380 BUSD_Alloc_End: ULONG,
381}}
382pub type PBUSNUMBER_DES = *mut BUSNUMBER_DES;
8faf50e0 383STRUCT!{#[repr(packed)] struct BUSNUMBER_RESOURCE {
ff7c6d11
XL
384 BusNumber_Header: BUSNUMBER_DES,
385 BusNumber_Data: [BUSNUMBER_RANGE; ANYSIZE_ARRAY],
386}}
387pub type PBUSNUMBER_RESOURCE = *mut BUSNUMBER_RESOURCE;
8faf50e0 388STRUCT!{#[repr(packed)] struct CONNECTION_DES {
ff7c6d11
XL
389 COND_Type: DWORD,
390 COND_Flags: DWORD,
391 COND_Class: BYTE,
392 COND_ClassType: BYTE,
393 COND_Reserved1: BYTE,
394 COND_Reserved2: BYTE,
395 COND_Id: LARGE_INTEGER,
396}}
397pub type PCONNECTION_DES = *mut CONNECTION_DES;
8faf50e0 398STRUCT!{#[repr(packed)] struct CONNECTION_RESOURCE {
ff7c6d11
XL
399 Connection_Header: CONNECTION_DES,
400}}
401pub type PCONNECTION_RESOURCE = *mut CONNECTION_RESOURCE;
402pub const CM_HWPI_NOT_DOCKABLE: DWORD = 0x00000000;
403pub const CM_HWPI_UNDOCKED: DWORD = 0x00000001;
404pub const CM_HWPI_DOCKED: DWORD = 0x00000002;
8faf50e0 405STRUCT!{#[repr(packed)] struct HWPROFILEINFO_A {
ff7c6d11
XL
406 HWPI_ulHWProfile: ULONG,
407 HWPI_szFriendlyName: [CHAR; MAX_PROFILE_LEN],
408 HWPI_dwFlags: DWORD,
409}}
410pub type PHWPROFILEINFO_A = *mut HWPROFILEINFO_A;
8faf50e0 411STRUCT!{#[repr(packed)] struct HWPROFILEINFO_W {
ff7c6d11
XL
412 HWPI_ulHWProfile: ULONG,
413 HWPI_szFriendlyName: [WCHAR; MAX_PROFILE_LEN],
414 HWPI_dwFlags: DWORD,
415}}
416pub type PHWPROFILEINFO_W = *mut HWPROFILEINFO_W;
417pub const ResType_All: RESOURCEID = 0x00000000;
418pub const ResType_None: RESOURCEID = 0x00000000;
419pub const ResType_Mem: RESOURCEID = 0x00000001;
420pub const ResType_IO: RESOURCEID = 0x00000002;
421pub const ResType_DMA: RESOURCEID = 0x00000003;
422pub const ResType_IRQ: RESOURCEID = 0x00000004;
423pub const ResType_DoNotUse: RESOURCEID = 0x00000005;
424pub const ResType_BusNumber: RESOURCEID = 0x00000006;
425pub const ResType_MemLarge: RESOURCEID = 0x00000007;
426pub const ResType_MAX: RESOURCEID = 0x00000007;
427pub const ResType_Ignored_Bit: RESOURCEID = 0x00008000;
428pub const ResType_ClassSpecific: RESOURCEID = 0x0000FFFF;
429pub const ResType_Reserved: RESOURCEID = 0x00008000;
430pub const ResType_DevicePrivate: RESOURCEID = 0x00008001;
431pub const ResType_PcCardConfig: RESOURCEID = 0x00008002;
432pub const ResType_MfCardConfig: RESOURCEID = 0x00008003;
433pub const ResType_Connection: RESOURCEID = 0x00008004;
434pub const CM_ADD_RANGE_ADDIFCONFLICT: ULONG = 0x00000000;
435pub const CM_ADD_RANGE_DONOTADDIFCONFLICT: ULONG = 0x00000001;
436pub const CM_ADD_RANGE_BITS: ULONG = 0x00000001;
437pub const BASIC_LOG_CONF: ULONG = 0x00000000;
438pub const FILTERED_LOG_CONF: ULONG = 0x00000001;
439pub const ALLOC_LOG_CONF: ULONG = 0x00000002;
440pub const BOOT_LOG_CONF: ULONG = 0x00000003;
441pub const FORCED_LOG_CONF: ULONG = 0x00000004;
442pub const OVERRIDE_LOG_CONF: ULONG = 0x00000005;
443pub const NUM_LOG_CONF: ULONG = 0x00000006;
444pub const LOG_CONF_BITS: ULONG = 0x00000007;
445pub const PRIORITY_EQUAL_FIRST: ULONG = 0x00000008;
446pub const PRIORITY_EQUAL_LAST: ULONG = 0x00000000;
447pub const PRIORITY_BIT: ULONG = 0x00000008;
448pub const RegDisposition_OpenAlways: REGDISPOSITION = 0x00000000;
449pub const RegDisposition_OpenExisting: REGDISPOSITION = 0x00000001;
450pub const RegDisposition_Bits: REGDISPOSITION = 0x00000001;
451pub const CM_ADD_ID_HARDWARE: ULONG = 0x00000000;
452pub const CM_ADD_ID_COMPATIBLE: ULONG = 0x00000001;
453pub const CM_ADD_ID_BITS: ULONG = 0x00000001;
454pub const CM_CREATE_DEVNODE_NORMAL: ULONG = 0x00000000;
455pub const CM_CREATE_DEVNODE_NO_WAIT_INSTALL: ULONG = 0x00000001;
456pub const CM_CREATE_DEVNODE_PHANTOM: ULONG = 0x00000002;
457pub const CM_CREATE_DEVNODE_GENERATE_ID: ULONG = 0x00000004;
458pub const CM_CREATE_DEVNODE_DO_NOT_INSTALL: ULONG = 0x00000008;
459pub const CM_CREATE_DEVNODE_BITS: ULONG = 0x0000000F;
460pub const CM_CREATE_DEVINST_NORMAL: ULONG = CM_CREATE_DEVNODE_NORMAL;
461pub const CM_CREATE_DEVINST_NO_WAIT_INSTALL: ULONG = CM_CREATE_DEVNODE_NO_WAIT_INSTALL;
462pub const CM_CREATE_DEVINST_PHANTOM: ULONG = CM_CREATE_DEVNODE_PHANTOM;
463pub const CM_CREATE_DEVINST_GENERATE_ID: ULONG = CM_CREATE_DEVNODE_GENERATE_ID;
464pub const CM_CREATE_DEVINST_DO_NOT_INSTALL: ULONG = CM_CREATE_DEVNODE_DO_NOT_INSTALL;
465pub const CM_CREATE_DEVINST_BITS: ULONG = CM_CREATE_DEVNODE_BITS;
466pub const CM_DELETE_CLASS_ONLY: ULONG = 0x00000000;
467pub const CM_DELETE_CLASS_SUBKEYS: ULONG = 0x00000001;
468pub const CM_DELETE_CLASS_INTERFACE: ULONG = 0x00000002;
469pub const CM_DELETE_CLASS_BITS: ULONG = 0x00000003;
470pub const CM_ENUMERATE_CLASSES_INSTALLER: ULONG = 0x00000000;
471pub const CM_ENUMERATE_CLASSES_INTERFACE: ULONG = 0x00000001;
472pub const CM_ENUMERATE_CLASSES_BITS: ULONG = 0x00000001;
473pub const CM_DETECT_NEW_PROFILE: ULONG = 0x00000001;
474pub const CM_DETECT_CRASHED: ULONG = 0x00000002;
475pub const CM_DETECT_HWPROF_FIRST_BOOT: ULONG = 0x00000004;
476pub const CM_DETECT_RUN: ULONG = 0x80000000;
477pub const CM_DETECT_BITS: ULONG = 0x80000007;
478pub const CM_DISABLE_POLITE: ULONG = 0x00000000;
479pub const CM_DISABLE_ABSOLUTE: ULONG = 0x00000001;
480pub const CM_DISABLE_HARDWARE: ULONG = 0x00000002;
481pub const CM_DISABLE_UI_NOT_OK: ULONG = 0x00000004;
482pub const CM_DISABLE_BITS: ULONG = 0x00000007;
483pub const CM_GETIDLIST_FILTER_NONE: ULONG = 0x00000000;
484pub const CM_GETIDLIST_FILTER_ENUMERATOR: ULONG = 0x00000001;
485pub const CM_GETIDLIST_FILTER_SERVICE: ULONG = 0x00000002;
486pub const CM_GETIDLIST_FILTER_EJECTRELATIONS: ULONG = 0x00000004;
487pub const CM_GETIDLIST_FILTER_REMOVALRELATIONS: ULONG = 0x00000008;
488pub const CM_GETIDLIST_FILTER_POWERRELATIONS: ULONG = 0x00000010;
489pub const CM_GETIDLIST_FILTER_BUSRELATIONS: ULONG = 0x00000020;
490pub const CM_GETIDLIST_DONOTGENERATE: ULONG = 0x10000040;
491pub const CM_GETIDLIST_FILTER_TRANSPORTRELATIONS: ULONG = 0x00000080;
492pub const CM_GETIDLIST_FILTER_PRESENT: ULONG = 0x00000100;
493pub const CM_GETIDLIST_FILTER_CLASS: ULONG = 0x00000200;
494pub const CM_GETIDLIST_FILTER_BITS: ULONG = 0x100003FF;
495pub const CM_GET_DEVICE_INTERFACE_LIST_PRESENT: ULONG = 0x00000000;
496pub const CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES: ULONG = 0x00000001;
497pub const CM_GET_DEVICE_INTERFACE_LIST_BITS: ULONG = 0x00000001;
498pub const CM_DRP_DEVICEDESC: ULONG = 0x00000001;
499pub const CM_DRP_HARDWAREID: ULONG = 0x00000002;
500pub const CM_DRP_COMPATIBLEIDS: ULONG = 0x00000003;
501pub const CM_DRP_UNUSED0: ULONG = 0x00000004;
502pub const CM_DRP_SERVICE: ULONG = 0x00000005;
503pub const CM_DRP_UNUSED1: ULONG = 0x00000006;
504pub const CM_DRP_UNUSED2: ULONG = 0x00000007;
505pub const CM_DRP_CLASS: ULONG = 0x00000008;
506pub const CM_DRP_CLASSGUID: ULONG = 0x00000009;
507pub const CM_DRP_DRIVER: ULONG = 0x0000000A;
508pub const CM_DRP_CONFIGFLAGS: ULONG = 0x0000000B;
509pub const CM_DRP_MFG: ULONG = 0x0000000C;
510pub const CM_DRP_FRIENDLYNAME: ULONG = 0x0000000D;
511pub const CM_DRP_LOCATION_INFORMATION: ULONG = 0x0000000E;
512pub const CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME: ULONG = 0x0000000F;
513pub const CM_DRP_CAPABILITIES: ULONG = 0x00000010;
514pub const CM_DRP_UI_NUMBER: ULONG = 0x00000011;
515pub const CM_DRP_UPPERFILTERS: ULONG = 0x00000012;
516pub const CM_CRP_UPPERFILTERS: ULONG = CM_DRP_UPPERFILTERS;
517pub const CM_DRP_LOWERFILTERS: ULONG = 0x00000013;
518pub const CM_CRP_LOWERFILTERS: ULONG = CM_DRP_LOWERFILTERS;
519pub const CM_DRP_BUSTYPEGUID: ULONG = 0x00000014;
520pub const CM_DRP_LEGACYBUSTYPE: ULONG = 0x00000015;
521pub const CM_DRP_BUSNUMBER: ULONG = 0x00000016;
522pub const CM_DRP_ENUMERATOR_NAME: ULONG = 0x00000017;
523pub const CM_DRP_SECURITY: ULONG = 0x00000018;
524pub const CM_CRP_SECURITY: ULONG = CM_DRP_SECURITY;
525pub const CM_DRP_SECURITY_SDS: ULONG = 0x00000019;
526pub const CM_CRP_SECURITY_SDS: ULONG = CM_DRP_SECURITY_SDS;
527pub const CM_DRP_DEVTYPE: ULONG = 0x0000001A;
528pub const CM_CRP_DEVTYPE: ULONG = CM_DRP_DEVTYPE;
529pub const CM_DRP_EXCLUSIVE: ULONG = 0x0000001B;
530pub const CM_CRP_EXCLUSIVE: ULONG = CM_DRP_EXCLUSIVE;
531pub const CM_DRP_CHARACTERISTICS: ULONG = 0x0000001C;
532pub const CM_CRP_CHARACTERISTICS: ULONG = CM_DRP_CHARACTERISTICS;
533pub const CM_DRP_ADDRESS: ULONG = 0x0000001D;
534pub const CM_DRP_UI_NUMBER_DESC_FORMAT: ULONG = 0x0000001E;
535pub const CM_DRP_DEVICE_POWER_DATA: ULONG = 0x0000001F;
536pub const CM_DRP_REMOVAL_POLICY: ULONG = 0x00000020;
537pub const CM_DRP_REMOVAL_POLICY_HW_DEFAULT: ULONG = 0x00000021;
538pub const CM_DRP_REMOVAL_POLICY_OVERRIDE: ULONG = 0x00000022;
539pub const CM_DRP_INSTALL_STATE: ULONG = 0x00000023;
540pub const CM_DRP_LOCATION_PATHS: ULONG = 0x00000024;
541pub const CM_DRP_BASE_CONTAINERID: ULONG = 0x00000025;
542pub const CM_DRP_MIN: ULONG = 0x00000001;
543pub const CM_CRP_MIN: ULONG = CM_DRP_MIN;
544pub const CM_DRP_MAX: ULONG = 0x00000025;
545pub const CM_CRP_MAX: ULONG = CM_DRP_MAX;
546pub const CM_DEVCAP_LOCKSUPPORTED: ULONG = 0x00000001;
547pub const CM_DEVCAP_EJECTSUPPORTED: ULONG = 0x00000002;
548pub const CM_DEVCAP_REMOVABLE: ULONG = 0x00000004;
549pub const CM_DEVCAP_DOCKDEVICE: ULONG = 0x00000008;
550pub const CM_DEVCAP_UNIQUEID: ULONG = 0x00000010;
551pub const CM_DEVCAP_SILENTINSTALL: ULONG = 0x00000020;
552pub const CM_DEVCAP_RAWDEVICEOK: ULONG = 0x00000040;
553pub const CM_DEVCAP_SURPRISEREMOVALOK: ULONG = 0x00000080;
554pub const CM_DEVCAP_HARDWAREDISABLED: ULONG = 0x00000100;
555pub const CM_DEVCAP_NONDYNAMIC: ULONG = 0x00000200;
556pub const CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL: ULONG = 1;
557pub const CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL: ULONG = 2;
558pub const CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL: ULONG = 3;
559pub const CM_INSTALL_STATE_INSTALLED: ULONG = 0;
560pub const CM_INSTALL_STATE_NEEDS_REINSTALL: ULONG = 1;
561pub const CM_INSTALL_STATE_FAILED_INSTALL: ULONG = 2;
562pub const CM_INSTALL_STATE_FINISH_INSTALL: ULONG = 3;
563pub const CM_LOCATE_DEVNODE_NORMAL: ULONG = 0x00000000;
564pub const CM_LOCATE_DEVNODE_PHANTOM: ULONG = 0x00000001;
565pub const CM_LOCATE_DEVNODE_CANCELREMOVE: ULONG = 0x00000002;
566pub const CM_LOCATE_DEVNODE_NOVALIDATION: ULONG = 0x00000004;
567pub const CM_LOCATE_DEVNODE_BITS: ULONG = 0x00000007;
568pub const CM_LOCATE_DEVINST_NORMAL: ULONG = CM_LOCATE_DEVNODE_NORMAL;
569pub const CM_LOCATE_DEVINST_PHANTOM: ULONG = CM_LOCATE_DEVNODE_PHANTOM;
570pub const CM_LOCATE_DEVINST_CANCELREMOVE: ULONG = CM_LOCATE_DEVNODE_CANCELREMOVE;
571pub const CM_LOCATE_DEVINST_NOVALIDATION: ULONG = CM_LOCATE_DEVNODE_NOVALIDATION;
572pub const CM_LOCATE_DEVINST_BITS: ULONG = CM_LOCATE_DEVNODE_BITS;
573pub const CM_OPEN_CLASS_KEY_INSTALLER: ULONG = 0x00000000;
574pub const CM_OPEN_CLASS_KEY_INTERFACE: ULONG = 0x00000001;
575pub const CM_OPEN_CLASS_KEY_BITS: ULONG = 0x00000001;
576pub const CM_REMOVE_UI_OK: ULONG = 0x00000000;
577pub const CM_REMOVE_UI_NOT_OK: ULONG = 0x00000001;
578pub const CM_REMOVE_NO_RESTART: ULONG = 0x00000002;
579pub const CM_REMOVE_BITS: ULONG = 0x00000003;
580pub const CM_QUERY_REMOVE_UI_OK: ULONG = CM_REMOVE_UI_OK;
581pub const CM_QUERY_REMOVE_UI_NOT_OK: ULONG = CM_REMOVE_UI_NOT_OK;
582pub const CM_QUERY_REMOVE_BITS: ULONG = CM_QUERY_REMOVE_UI_OK | CM_QUERY_REMOVE_UI_NOT_OK;
583pub const CM_REENUMERATE_NORMAL: ULONG = 0x00000000;
584pub const CM_REENUMERATE_SYNCHRONOUS: ULONG = 0x00000001;
585pub const CM_REENUMERATE_RETRY_INSTALLATION: ULONG = 0x00000002;
586pub const CM_REENUMERATE_ASYNCHRONOUS: ULONG = 0x00000004;
587pub const CM_REENUMERATE_BITS: ULONG = 0x00000007;
588pub const CM_REGISTER_DEVICE_DRIVER_STATIC: ULONG = 0x00000000;
589pub const CM_REGISTER_DEVICE_DRIVER_DISABLEABLE: ULONG = 0x00000001;
590pub const CM_REGISTER_DEVICE_DRIVER_REMOVABLE: ULONG = 0x00000002;
591pub const CM_REGISTER_DEVICE_DRIVER_BITS: ULONG = 0x00000003;
592pub const CM_REGISTRY_HARDWARE: ULONG = 0x00000000;
593pub const CM_REGISTRY_SOFTWARE: ULONG = 0x00000001;
594pub const CM_REGISTRY_USER: ULONG = 0x00000100;
595pub const CM_REGISTRY_CONFIG: ULONG = 0x00000200;
596pub const CM_REGISTRY_BITS: ULONG = 0x00000301;
597pub const CM_SET_DEVNODE_PROBLEM_NORMAL: ULONG = 0x00000000;
598pub const CM_SET_DEVNODE_PROBLEM_OVERRIDE: ULONG = 0x00000001;
599pub const CM_SET_DEVNODE_PROBLEM_BITS: ULONG = 0x00000001;
600pub const CM_SET_DEVINST_PROBLEM_NORMAL: ULONG = CM_SET_DEVNODE_PROBLEM_NORMAL;
601pub const CM_SET_DEVINST_PROBLEM_OVERRIDE: ULONG = CM_SET_DEVNODE_PROBLEM_OVERRIDE;
602pub const CM_SET_DEVINST_PROBLEM_BITS: ULONG = CM_SET_DEVNODE_PROBLEM_BITS;
603pub const CM_SET_HW_PROF_FLAGS_UI_NOT_OK: ULONG = 0x00000001;
604pub const CM_SET_HW_PROF_FLAGS_BITS: ULONG = 0x00000001;
605pub const CM_SETUP_DEVNODE_READY: ULONG = 0x00000000;
606pub const CM_SETUP_DEVINST_READY: ULONG = CM_SETUP_DEVNODE_READY;
607pub const CM_SETUP_DOWNLOAD: ULONG = 0x00000001;
608pub const CM_SETUP_WRITE_LOG_CONFS: ULONG = 0x00000002;
609pub const CM_SETUP_PROP_CHANGE: ULONG = 0x00000003;
610pub const CM_SETUP_DEVNODE_RESET: ULONG = 0x00000004;
611pub const CM_SETUP_DEVINST_RESET: ULONG = CM_SETUP_DEVNODE_RESET;
612pub const CM_SETUP_DEVNODE_CONFIG: ULONG = 0x00000005;
613pub const CM_SETUP_DEVINST_CONFIG: ULONG = CM_SETUP_DEVNODE_CONFIG;
614pub const CM_SETUP_DEVNODE_CONFIG_CLASS: ULONG = 0x00000006;
615pub const CM_SETUP_DEVINST_CONFIG_CLASS: ULONG = CM_SETUP_DEVNODE_CONFIG_CLASS;
616pub const CM_SETUP_DEVNODE_CONFIG_EXTENSIONS: ULONG = 0x00000007;
617pub const CM_SETUP_DEVINST_CONFIG_EXTENSIONS: ULONG = CM_SETUP_DEVNODE_CONFIG_EXTENSIONS;
618pub const CM_SETUP_BITS: ULONG = 0x00000007;
619pub const CM_QUERY_ARBITRATOR_RAW: ULONG = 0x00000000;
620pub const CM_QUERY_ARBITRATOR_TRANSLATED: ULONG = 0x00000001;
621pub const CM_QUERY_ARBITRATOR_BITS: ULONG = 0x00000001;
622pub const CM_CUSTOMDEVPROP_MERGE_MULTISZ: ULONG = 0x00000001;
623pub const CM_CUSTOMDEVPROP_BITS: ULONG = 0x00000001;
624pub const CM_NAME_ATTRIBUTE_NAME_RETRIEVED_FROM_DEVICE: ULONG = 0x1;
625pub const CM_NAME_ATTRIBUTE_USER_ASSIGNED_NAME: ULONG = 0x2;
626pub const CM_CLASS_PROPERTY_INSTALLER: ULONG = 0x00000000;
627pub const CM_CLASS_PROPERTY_INTERFACE: ULONG = 0x00000001;
628pub const CM_CLASS_PROPERTY_BITS: ULONG = 0x00000001;
0bf4aa26 629DECLARE_HANDLE!{HCMNOTIFICATION, HCMNOTIFICATION__}
ff7c6d11
XL
630pub type PHCMNOTIFICATION = *mut HCMNOTIFICATION;
631pub const CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES: ULONG = 0x00000001;
632pub const CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES: ULONG = 0x00000002;
633pub const CM_NOTIFY_FILTER_VALID_FLAGS: ULONG = CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES
634 | CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES;
635ENUM!{enum CM_NOTIFY_FILTER_TYPE {
636 CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE = 0,
637 CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE,
638 CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE,
639 CM_NOTIFY_FILTER_TYPE_MAX,
640}}
641pub type PCM_NOTIFY_FILTER_TYPE = *mut CM_NOTIFY_FILTER_TYPE;
642STRUCT!{struct CM_NOTIFY_FILTER_DeviceInterface {
643 ClassGuid: GUID,
644}}
645STRUCT!{struct CM_NOTIFY_FILTER_DeviceHandle {
646 hTarget: HANDLE,
647}}
648STRUCT!{struct CM_NOTIFY_FILTER_DeviceInstance {
649 InstanceId: [WCHAR; MAX_DEVICE_ID_LEN],
650}}
651UNION!{union CM_NOTIFY_FILTER_u {
652 [u32; 100] [u64; 50],
653 DeviceInterface DeviceInterface_mut: CM_NOTIFY_FILTER_DeviceInterface,
654 DeviceHandle DeviceHandle_mut: CM_NOTIFY_FILTER_DeviceHandle,
655 DeviceInstance DeviceInstance_mut: CM_NOTIFY_FILTER_DeviceInstance,
656}}
657STRUCT!{struct CM_NOTIFY_FILTER {
658 cbSize: DWORD,
659 Flags: DWORD,
660 FilterType: CM_NOTIFY_FILTER_TYPE,
661 Reserved: DWORD,
662 u: CM_NOTIFY_FILTER_u,
663}}
664pub type PCM_NOTIFY_FILTER = *mut CM_NOTIFY_FILTER;
665ENUM!{enum CM_NOTIFY_ACTION {
666 CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
667 CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL,
668 CM_NOTIFY_ACTION_DEVICEQUERYREMOVE,
669 CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED,
670 CM_NOTIFY_ACTION_DEVICEREMOVEPENDING,
671 CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE,
672 CM_NOTIFY_ACTION_DEVICECUSTOMEVENT,
673 CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED,
674 CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED,
675 CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED,
676 CM_NOTIFY_ACTION_MAX,
677}}
678pub type PCM_NOTIFY_ACTION = *mut CM_NOTIFY_ACTION;
679STRUCT!{struct CM_NOTIFY_EVENT_DATA_DeviceInterface {
680 ClassGuid: GUID,
681 SymbolicLink: [WCHAR; ANYSIZE_ARRAY],
682}}
683STRUCT!{struct CM_NOTIFY_EVENT_DATA_DeviceHandle {
684 EventGuid: GUID,
685 NameOffset: LONG,
686 DataSize: DWORD,
687 Data: [BYTE; ANYSIZE_ARRAY],
688}}
689STRUCT!{struct CM_NOTIFY_EVENT_DATA_DeviceInstance {
690 InstanceId: [WCHAR; ANYSIZE_ARRAY],
691}}
692UNION!{union CM_NOTIFY_EVENT_DATA_u {
693 [u32; 7],
694 DeviceInterface DeviceInterface_mut: CM_NOTIFY_EVENT_DATA_DeviceInterface,
695 DeviceHandle DeviceHandle_mut: CM_NOTIFY_EVENT_DATA_DeviceHandle,
696 DeviceInstance DeviceInstance_mut: CM_NOTIFY_EVENT_DATA_DeviceInstance,
697}}
698STRUCT!{struct CM_NOTIFY_EVENT_DATA {
699 FilterType: CM_NOTIFY_FILTER_TYPE,
700 Reserved: DWORD,
701 u: CM_NOTIFY_EVENT_DATA_u,
702}}
703pub type PCM_NOTIFY_EVENT_DATA = *mut CM_NOTIFY_EVENT_DATA;
704FN!{stdcall PCM_NOTIFY_CALLBACK(
705 hNotify: HCMNOTIFICATION,
706 Context: PVOID,
707 Action: CM_NOTIFY_ACTION,
708 EventData: PCM_NOTIFY_EVENT_DATA,
709 EventDataSize: DWORD,
710) -> DWORD}
711extern "system" {
712 pub fn CM_Add_Empty_Log_Conf(
713 plcLogConf: PLOG_CONF,
714 dnDevInst: DEVINST,
715 Priority: PRIORITY,
716 ulFlags: ULONG,
717 ) -> CONFIGRET;
718 pub fn CM_Add_Empty_Log_Conf_Ex(
719 plcLogConf: PLOG_CONF,
720 dnDevInst: DEVINST,
721 Priority: PRIORITY,
722 ulFlags: ULONG,
723 hMachine: HMACHINE,
724 ) -> CONFIGRET;
725 pub fn CM_Add_IDA(
726 dnDevInst: DEVINST,
727 pszID: PSTR,
728 ulFlags: ULONG,
729 ) -> CONFIGRET;
730 pub fn CM_Add_IDW(
731 dnDevInst: DEVINST,
732 pszID: PWSTR,
733 ulFlags: ULONG,
734 ) -> CONFIGRET;
735 pub fn CM_Add_ID_ExA(
736 dnDevInst: DEVINST,
737 pszID: PSTR,
738 ulFlags: ULONG,
739 hMachine: HMACHINE,
740 ) -> CONFIGRET;
741 pub fn CM_Add_ID_ExW(
742 dnDevInst: DEVINST,
743 pszID: PWSTR,
744 ulFlags: ULONG,
745 hMachine: HMACHINE,
746 ) -> CONFIGRET;
747 pub fn CM_Add_Range(
748 ullStartValue: DWORDLONG,
749 ullEndValue: DWORDLONG,
750 rlh: RANGE_LIST,
751 ulFlags: ULONG,
752 ) -> CONFIGRET;
753 pub fn CM_Add_Res_Des(
754 prdResDes: PRES_DES,
755 lcLogConf: LOG_CONF,
756 ResourceID: RESOURCEID,
757 ResourceData: PCVOID,
758 ResourceLen: ULONG,
759 ulFlags: ULONG,
760 ) -> CONFIGRET;
761 pub fn CM_Add_Res_Des_Ex(
762 prdResDes: PRES_DES,
763 lcLogConf: LOG_CONF,
764 ResourceID: RESOURCEID,
765 ResourceData: PCVOID,
766 ResourceLen: ULONG,
767 ulFlags: ULONG,
768 hMachine: HMACHINE,
769 ) -> CONFIGRET;
770 pub fn CM_Connect_MachineA(
771 UNCServerName: PCSTR,
772 phMachine: PHMACHINE,
773 ) -> CONFIGRET;
774 pub fn CM_Connect_MachineW(
775 UNCServerName: PCWSTR,
776 phMachine: PHMACHINE,
777 ) -> CONFIGRET;
778 pub fn CM_Create_DevNodeA(
779 pdnDevInst: PDEVINST,
780 pDeviceID: DEVINSTID_A,
781 dnParent: DEVINST,
782 ulFlags: ULONG,
783 ) -> CONFIGRET;
784 pub fn CM_Create_DevNodeW(
785 pdnDevInst: PDEVINST,
786 pDeviceID: DEVINSTID_W,
787 dnParent: DEVINST,
788 ulFlags: ULONG,
789 ) -> CONFIGRET;
790 pub fn CM_Create_DevNode_ExA(
791 pdnDevInst: PDEVINST,
792 pDeviceID: DEVINSTID_A,
793 dnParent: DEVINST,
794 ulFlags: ULONG,
795 hMachine: HMACHINE,
796 ) -> CONFIGRET;
797 pub fn CM_Create_DevNode_ExW(
798 pdnDevInst: PDEVINST,
799 pDeviceID: DEVINSTID_W,
800 dnParent: DEVINST,
801 ulFlags: ULONG,
802 hMachine: HMACHINE,
803 ) -> CONFIGRET;
804 pub fn CM_Create_Range_List(
805 prlh: PRANGE_LIST,
806 ulFlags: ULONG,
807 ) -> CONFIGRET;
808 pub fn CM_Delete_Class_Key(
809 ClassGuid: LPGUID,
810 ulFlags: ULONG,
811 ) -> CONFIGRET;
812 pub fn CM_Delete_Class_Key_Ex(
813 ClassGuid: LPGUID,
814 ulFlags: ULONG,
815 hMachine: HMACHINE,
816 ) -> CONFIGRET;
817 pub fn CM_Delete_DevNode_Key(
818 dnDevNode: DEVNODE,
819 ulHardwareProfile: ULONG,
820 ulFlags: ULONG,
821 ) -> CONFIGRET;
822 pub fn CM_Delete_DevNode_Key_Ex(
823 dnDevNode: DEVNODE,
824 ulHardwareProfile: ULONG,
825 ulFlags: ULONG,
826 hMachine: HMACHINE,
827 ) -> CONFIGRET;
828 pub fn CM_Delete_Range(
829 ullStartValue: DWORDLONG,
830 ullEndValue: DWORDLONG,
831 rlh: RANGE_LIST,
832 ulFlags: ULONG,
833 ) -> CONFIGRET;
834 pub fn CM_Detect_Resource_Conflict(
835 dnDevInst: DEVINST,
836 ResourceID: RESOURCEID,
837 ResourceData: PCVOID,
838 ResourceLen: ULONG,
839 pbConflictDetected: PBOOL,
840 ulFlags: ULONG,
841 ) -> CONFIGRET;
842 pub fn CM_Detect_Resource_Conflict_Ex(
843 dnDevInst: DEVINST,
844 ResourceID: RESOURCEID,
845 ResourceData: PCVOID,
846 ResourceLen: ULONG,
847 pbConflictDetected: PBOOL,
848 ulFlags: ULONG,
849 hMachine: HMACHINE,
850 ) -> CONFIGRET;
851 pub fn CM_Disable_DevNode(
852 dnDevInst: DEVINST,
853 ulFlags: ULONG,
854 ) -> CONFIGRET;
855 pub fn CM_Disable_DevNode_Ex(
856 dnDevInst: DEVINST,
857 ulFlags: ULONG,
858 hMachine: HMACHINE,
859 ) -> CONFIGRET;
860 pub fn CM_Disconnect_Machine(
861 hMachine: HMACHINE,
862 ) -> CONFIGRET;
863 pub fn CM_Dup_Range_List(
864 rlhOld: RANGE_LIST,
865 rlhNew: RANGE_LIST,
866 ulFlags: ULONG,
867 ) -> CONFIGRET;
868 pub fn CM_Enable_DevNode(
869 dnDevInst: DEVINST,
870 ulFlags: ULONG,
871 ) -> CONFIGRET;
872 pub fn CM_Enable_DevNode_Ex(
873 dnDevInst: DEVINST,
874 ulFlags: ULONG,
875 hMachine: HMACHINE,
876 ) -> CONFIGRET;
877 pub fn CM_Enumerate_Classes(
878 ulClassIndex: ULONG,
879 ClassGuid: LPGUID,
880 ulFlags: ULONG,
881 ) -> CONFIGRET;
882 pub fn CM_Enumerate_Classes_Ex(
883 ulClassIndex: ULONG,
884 ClassGuid: LPGUID,
885 ulFlags: ULONG,
886 hMachine: HMACHINE,
887 ) -> CONFIGRET;
888 pub fn CM_Enumerate_EnumeratorsA(
889 ulEnumIndex: ULONG,
890 Buffer: PSTR,
891 pulLength: PULONG,
892 ulFlags: ULONG,
893 ) -> CONFIGRET;
894 pub fn CM_Enumerate_EnumeratorsW(
895 ulEnumIndex: ULONG,
896 Buffer: PWSTR,
897 pulLength: PULONG,
898 ulFlags: ULONG,
899 ) -> CONFIGRET;
900 pub fn CM_Enumerate_Enumerators_ExA(
901 ulEnumIndex: ULONG,
902 Buffer: PSTR,
903 pulLength: PULONG,
904 ulFlags: ULONG,
905 hMachine: HMACHINE,
906 ) -> CONFIGRET;
907 pub fn CM_Enumerate_Enumerators_ExW(
908 ulEnumIndex: ULONG,
909 Buffer: PWSTR,
910 pulLength: PULONG,
911 ulFlags: ULONG,
912 hMachine: HMACHINE,
913 ) -> CONFIGRET;
914 pub fn CM_Find_Range(
915 pullStart: PDWORDLONG,
916 ullStart: DWORDLONG,
917 ulLength: ULONG,
918 ullAlignment: DWORDLONG,
919 ullEnd: DWORDLONG,
920 rlh: RANGE_LIST,
921 ulFlags: ULONG,
922 ) -> CONFIGRET;
923 pub fn CM_First_Range(
924 rlh: RANGE_LIST,
925 pullStart: PDWORDLONG,
926 pullEnd: PDWORDLONG,
927 preElement: PRANGE_LIST,
928 ulFlags: ULONG,
929 ) -> CONFIGRET;
930 pub fn CM_Free_Log_Conf(
931 lcLogConfToBeFreed: LOG_CONF,
932 ulFlags: ULONG,
933 ) -> CONFIGRET;
934 pub fn CM_Free_Log_Conf_Ex(
935 lcLogConfToBeFreed: LOG_CONF,
936 ulFlags: ULONG,
937 hMachine: HMACHINE,
938 ) -> CONFIGRET;
939 pub fn CM_Free_Log_Conf_Handle(
940 lcLogConf: LOG_CONF,
941 ) -> CONFIGRET;
942 pub fn CM_Free_Range_List(
943 rlh: RANGE_LIST,
944 ulFlags: ULONG,
945 ) -> CONFIGRET;
946 pub fn CM_Free_Res_Des(
947 prdResDes: PRES_DES,
948 rdResDes: RES_DES,
949 ulFlags: ULONG,
950 ) -> CONFIGRET;
951 pub fn CM_Free_Res_Des_Ex(
952 prdResDes: PRES_DES,
953 rdResDes: RES_DES,
954 ulFlags: ULONG,
955 hMachine: HMACHINE,
956 ) -> CONFIGRET;
957 pub fn CM_Free_Res_Des_Handle(
958 rdResDes: RES_DES,
959 ) -> CONFIGRET;
960 pub fn CM_Get_Child(
961 pdnDevInst: PDEVINST,
962 dnDevInst: DEVINST,
963 ulFlags: ULONG,
964 ) -> CONFIGRET;
965 pub fn CM_Get_Child_Ex(
966 pdnDevInst: PDEVINST,
967 dnDevInst: DEVINST,
968 ulFlags: ULONG,
969 hMachine: HMACHINE,
970 ) -> CONFIGRET;
971 pub fn CM_Get_Class_Key_NameA(
972 ClassGuid: LPGUID,
973 pszKeyName: LPSTR,
974 pulLength: PULONG,
975 ulFlags: ULONG,
976 ) -> CONFIGRET;
977 pub fn CM_Get_Class_Key_NameW(
978 ClassGuid: LPGUID,
979 pszKeyName: LPWSTR,
980 pulLength: PULONG,
981 ulFlags: ULONG,
982 ) -> CONFIGRET;
983 pub fn CM_Get_Class_Key_Name_ExA(
984 ClassGuid: LPGUID,
985 pszKeyName: LPSTR,
986 pulLength: PULONG,
987 ulFlags: ULONG,
988 hMachine: HMACHINE,
989 ) -> CONFIGRET;
990 pub fn CM_Get_Class_Key_Name_ExW(
991 ClassGuid: LPGUID,
992 pszKeyName: LPWSTR,
993 pulLength: PULONG,
994 ulFlags: ULONG,
995 hMachine: HMACHINE,
996 ) -> CONFIGRET;
997 pub fn CM_Get_Class_NameA(
998 ClassGuid: LPGUID,
999 Buffer: PSTR,
1000 pulLength: PULONG,
1001 ulFlags: ULONG,
1002 ) -> CONFIGRET;
1003 pub fn CM_Get_Class_NameW(
1004 ClassGuid: LPGUID,
1005 Buffer: PWSTR,
1006 pulLength: PULONG,
1007 ulFlags: ULONG,
1008 ) -> CONFIGRET;
1009 pub fn CM_Get_Class_Name_ExA(
1010 ClassGuid: LPGUID,
1011 Buffer: PSTR,
1012 pulLength: PULONG,
1013 ulFlags: ULONG,
1014 hMachine: HMACHINE,
1015 ) -> CONFIGRET;
1016 pub fn CM_Get_Class_Name_ExW(
1017 ClassGuid: LPGUID,
1018 Buffer: PWSTR,
1019 pulLength: PULONG,
1020 ulFlags: ULONG,
1021 hMachine: HMACHINE,
1022 ) -> CONFIGRET;
1023 pub fn CM_Get_Depth(
1024 pulDepth: PULONG,
1025 dnDevInst: DEVINST,
1026 ulFlags: ULONG,
1027 ) -> CONFIGRET;
1028 pub fn CM_Get_Depth_Ex(
1029 pulDepth: PULONG,
1030 dnDevInst: DEVINST,
1031 ulFlags: ULONG,
1032 hMachine: HMACHINE,
1033 ) -> CONFIGRET;
1034 pub fn CM_Get_Device_IDA(
1035 dnDevInst: DEVINST,
1036 Buffer: PSTR,
1037 BufferLen: ULONG,
1038 ulFlags: ULONG,
1039 ) -> CONFIGRET;
1040 pub fn CM_Get_Device_IDW(
1041 dnDevInst: DEVINST,
1042 Buffer: PWSTR,
1043 BufferLen: ULONG,
1044 ulFlags: ULONG,
1045 ) -> CONFIGRET;
1046 pub fn CM_Get_Device_ID_ExA(
1047 dnDevInst: DEVINST,
1048 Buffer: PSTR,
1049 BufferLen: ULONG,
1050 ulFlags: ULONG,
1051 hMachine: HMACHINE,
1052 ) -> CONFIGRET;
1053 pub fn CM_Get_Device_ID_ExW(
1054 dnDevInst: DEVINST,
1055 Buffer: PWSTR,
1056 BufferLen: ULONG,
1057 ulFlags: ULONG,
1058 hMachine: HMACHINE,
1059 ) -> CONFIGRET;
1060 pub fn CM_Get_Device_ID_ListA(
1061 pszFilter: PCSTR,
1062 Buffer: PCHAR,
1063 BufferLen: ULONG,
1064 ulFlags: ULONG,
1065 ) -> CONFIGRET;
1066 pub fn CM_Get_Device_ID_ListW(
1067 pszFilter: PCWSTR,
1068 Buffer: PWCHAR,
1069 BufferLen: ULONG,
1070 ulFlags: ULONG,
1071 ) -> CONFIGRET;
1072 pub fn CM_Get_Device_ID_List_ExA(
1073 pszFilter: PCSTR,
1074 Buffer: PCHAR,
1075 BufferLen: ULONG,
1076 ulFlags: ULONG,
1077 hMachine: HMACHINE,
1078 ) -> CONFIGRET;
1079 pub fn CM_Get_Device_ID_List_ExW(
1080 pszFilter: PCWSTR,
1081 Buffer: PWCHAR,
1082 BufferLen: ULONG,
1083 ulFlags: ULONG,
1084 hMachine: HMACHINE,
1085 ) -> CONFIGRET;
1086 pub fn CM_Get_Device_ID_List_SizeA(
1087 pulLen: PULONG,
1088 pszFilter: PCSTR,
1089 ulFlags: ULONG,
1090 ) -> CONFIGRET;
1091 pub fn CM_Get_Device_ID_List_SizeW(
1092 pulLen: PULONG,
1093 pszFilter: PCWSTR,
1094 ulFlags: ULONG,
1095 ) -> CONFIGRET;
1096 pub fn CM_Get_Device_ID_List_Size_ExA(
1097 pulLen: PULONG,
1098 pszFilter: PCSTR,
1099 ulFlags: ULONG,
1100 hMachine: HMACHINE,
1101 ) -> CONFIGRET;
1102 pub fn CM_Get_Device_ID_List_Size_ExW(
1103 pulLen: PULONG,
1104 pszFilter: PCWSTR,
1105 ulFlags: ULONG,
1106 hMachine: HMACHINE,
1107 ) -> CONFIGRET;
1108 pub fn CM_Get_Device_ID_Size(
1109 pulLen: PULONG,
1110 dnDevInst: DEVINST,
1111 ulFlags: ULONG,
1112 ) -> CONFIGRET;
1113 pub fn CM_Get_Device_ID_Size_Ex(
1114 pulLen: PULONG,
1115 dnDevInst: DEVINST,
1116 ulFlags: ULONG,
1117 hMachine: HMACHINE,
1118 ) -> CONFIGRET;
60c5eb7d
XL
1119 pub fn CM_Get_DevNode_PropertyW(
1120 dnDevInst: DEVINST,
1121 PropertyKey: *const DEVPROPKEY,
1122 PropertyType: *mut DEVPROPTYPE,
1123 PropertyBuffer: PBYTE,
1124 PropertyBufferSize: PULONG,
1125 ulFlags: ULONG,
1126 ) -> CONFIGRET;
1127 pub fn CM_Get_DevNode_PropertyExW(
1128 dnDevInst: DEVINST,
1129 PropertyKey: *const DEVPROPKEY,
1130 PropertyType: *mut DEVPROPTYPE,
1131 PropertyBuffer: PBYTE,
1132 PropertyBufferSize: PULONG,
1133 ulFlags: ULONG,
1134 hMachine: HMACHINE,
1135 ) -> CONFIGRET;
ff7c6d11
XL
1136 pub fn CM_Get_DevNode_Registry_PropertyA(
1137 dnDevInst: DEVINST,
1138 ulProperty: ULONG,
1139 pulRegDataType: PULONG,
1140 Buffer: PVOID,
1141 pulLength: PULONG,
1142 ulFlags: ULONG,
1143 ) -> CONFIGRET;
1144 pub fn CM_Get_DevNode_Registry_PropertyW(
1145 dnDevInst: DEVINST,
1146 ulProperty: ULONG,
1147 pulRegDataType: PULONG,
1148 Buffer: PVOID,
1149 pulLength: PULONG,
1150 ulFlags: ULONG,
1151 ) -> CONFIGRET;
1152 pub fn CM_Get_DevNode_Registry_Property_ExA(
1153 dnDevInst: DEVINST,
1154 ulProperty: ULONG,
1155 pulRegDataType: PULONG,
1156 Buffer: PVOID,
1157 pulLength: PULONG,
1158 ulFlags: ULONG,
1159 hMachine: HMACHINE,
1160 ) -> CONFIGRET;
1161 pub fn CM_Get_DevNode_Registry_Property_ExW(
1162 dnDevInst: DEVINST,
1163 ulProperty: ULONG,
1164 pulRegDataType: PULONG,
1165 Buffer: PVOID,
1166 pulLength: PULONG,
1167 ulFlags: ULONG,
1168 hMachine: HMACHINE,
1169 ) -> CONFIGRET;
1170 pub fn CM_Get_DevNode_Custom_PropertyA(
1171 dnDevInst: DEVINST,
1172 pszCustomPropertyName: PCSTR,
1173 pulRegDataType: PULONG,
1174 Buffer: PVOID,
1175 pulLength: PULONG,
1176 ulFlags: ULONG,
1177 ) -> CONFIGRET;
1178 pub fn CM_Get_DevNode_Custom_PropertyW(
1179 dnDevInst: DEVINST,
1180 pszCustomPropertyName: PCWSTR,
1181 pulRegDataType: PULONG,
1182 Buffer: PVOID,
1183 pulLength: PULONG,
1184 ulFlags: ULONG,
1185 ) -> CONFIGRET;
1186 pub fn CM_Get_DevNode_Custom_Property_ExA(
1187 dnDevInst: DEVINST,
1188 pszCustomPropertyName: PCSTR,
1189 pulRegDataType: PULONG,
1190 Buffer: PVOID,
1191 pulLength: PULONG,
1192 ulFlags: ULONG,
1193 hMachine: HMACHINE,
1194 ) -> CONFIGRET;
1195 pub fn CM_Get_DevNode_Custom_Property_ExW(
1196 dnDevInst: DEVINST,
1197 pszCustomPropertyName: PCWSTR,
1198 pulRegDataType: PULONG,
1199 Buffer: PVOID,
1200 pulLength: PULONG,
1201 ulFlags: ULONG,
1202 hMachine: HMACHINE,
1203 ) -> CONFIGRET;
1204 pub fn CM_Get_DevNode_Status(
1205 pulStatus: PULONG,
1206 pulProblemNumber: PULONG,
1207 dnDevInst: DEVINST,
1208 ulFlags: ULONG,
1209 ) -> CONFIGRET;
1210 pub fn CM_Get_DevNode_Status_Ex(
1211 pulStatus: PULONG,
1212 pulProblemNumber: PULONG,
1213 dnDevInst: DEVINST,
1214 ulFlags: ULONG,
1215 hMachine: HMACHINE,
1216 ) -> CONFIGRET;
1217 pub fn CM_Get_First_Log_Conf(
1218 plcLogConf: PLOG_CONF,
1219 dnDevInst: DEVINST,
1220 ulFlags: ULONG,
1221 ) -> CONFIGRET;
1222 pub fn CM_Get_First_Log_Conf_Ex(
1223 plcLogConf: PLOG_CONF,
1224 dnDevInst: DEVINST,
1225 ulFlags: ULONG,
1226 hMachine: HMACHINE,
1227 ) -> CONFIGRET;
1228 pub fn CM_Get_Global_State(
1229 pulState: PULONG,
1230 ulFlags: ULONG,
1231 ) -> CONFIGRET;
1232 pub fn CM_Get_Global_State_Ex(
1233 pulState: PULONG,
1234 ulFlags: ULONG,
1235 hMachine: HMACHINE,
1236 ) -> CONFIGRET;
1237 pub fn CM_Get_Hardware_Profile_InfoA(
1238 ulIndex: ULONG,
1239 pHWProfileInfo: PHWPROFILEINFO_A,
1240 ulFlags: ULONG,
1241 ) -> CONFIGRET;
1242 pub fn CM_Get_Hardware_Profile_Info_ExA(
1243 ulIndex: ULONG,
1244 pHWProfileInfo: PHWPROFILEINFO_A,
1245 ulFlags: ULONG,
1246 hMachine: HMACHINE,
1247 ) -> CONFIGRET;
1248 pub fn CM_Get_Hardware_Profile_InfoW(
1249 ulIndex: ULONG,
1250 pHWProfileInfo: PHWPROFILEINFO_W,
1251 ulFlags: ULONG,
1252 ) -> CONFIGRET;
1253 pub fn CM_Get_Hardware_Profile_Info_ExW(
1254 ulIndex: ULONG,
1255 pHWProfileInfo: PHWPROFILEINFO_W,
1256 ulFlags: ULONG,
1257 hMachine: HMACHINE,
1258 ) -> CONFIGRET;
1259 pub fn CM_Get_HW_Prof_FlagsA(
1260 pDeviceID: DEVINSTID_A,
1261 ulHardwareProfile: ULONG,
1262 pulValue: PULONG,
1263 ulFlags: ULONG,
1264 ) -> CONFIGRET;
1265 pub fn CM_Get_HW_Prof_FlagsW(
1266 pDeviceID: DEVINSTID_W,
1267 ulHardwareProfile: ULONG,
1268 pulValue: PULONG,
1269 ulFlags: ULONG,
1270 ) -> CONFIGRET;
1271 pub fn CM_Get_HW_Prof_Flags_ExA(
1272 pDeviceID: DEVINSTID_A,
1273 ulHardwareProfile: ULONG,
1274 pulValue: PULONG,
1275 ulFlags: ULONG,
1276 hMachine: HMACHINE,
1277 ) -> CONFIGRET;
1278 pub fn CM_Get_HW_Prof_Flags_ExW(
1279 pDeviceID: DEVINSTID_W,
1280 ulHardwareProfile: ULONG,
1281 pulValue: PULONG,
1282 ulFlags: ULONG,
1283 hMachine: HMACHINE,
1284 ) -> CONFIGRET;
1285 pub fn CM_Get_Device_Interface_AliasA(
1286 pszDeviceInterface: LPCSTR,
1287 AliasInterfaceGuid: LPGUID,
1288 pszAliasDeviceInterface: LPSTR,
1289 pulLength: PULONG,
1290 ulFlags: ULONG,
1291 ) -> CONFIGRET;
1292 pub fn CM_Get_Device_Interface_AliasW(
1293 pszDeviceInterface: LPCWSTR,
1294 AliasInterfaceGuid: LPGUID,
1295 pszAliasDeviceInterface: LPWSTR,
1296 pulLength: PULONG,
1297 ulFlags: ULONG,
1298 ) -> CONFIGRET;
1299 pub fn CM_Get_Device_Interface_Alias_ExA(
1300 pszDeviceInterface: LPCSTR,
1301 AliasInterfaceGuid: LPGUID,
1302 pszAliasDeviceInterface: LPSTR,
1303 pulLength: PULONG,
1304 ulFlags: ULONG,
1305 hMachine: HMACHINE,
1306 ) -> CONFIGRET;
1307 pub fn CM_Get_Device_Interface_Alias_ExW(
1308 pszDeviceInterface: LPCWSTR,
1309 AliasInterfaceGuid: LPGUID,
1310 pszAliasDeviceInterface: LPWSTR,
1311 pulLength: PULONG,
1312 ulFlags: ULONG,
1313 hMachine: HMACHINE,
1314 ) -> CONFIGRET;
1315 pub fn CM_Get_Device_Interface_ListA(
1316 InterfaceClassGuid: LPGUID,
1317 pDeviceID: DEVINSTID_A,
1318 Buffer: PCHAR,
1319 BufferLen: ULONG,
1320 ulFlags: ULONG,
1321 ) -> CONFIGRET;
1322 pub fn CM_Get_Device_Interface_ListW(
1323 InterfaceClassGuid: LPGUID,
1324 pDeviceID: DEVINSTID_W,
1325 Buffer: PWCHAR,
1326 BufferLen: ULONG,
1327 ulFlags: ULONG,
1328 ) -> CONFIGRET;
1329 pub fn CM_Get_Device_Interface_List_ExA(
1330 InterfaceClassGuid: LPGUID,
1331 pDeviceID: DEVINSTID_A,
1332 Buffer: PCHAR,
1333 BufferLen: ULONG,
1334 ulFlags: ULONG,
1335 hMachine: HMACHINE,
1336 ) -> CONFIGRET;
1337 pub fn CM_Get_Device_Interface_List_ExW(
1338 InterfaceClassGuid: LPGUID,
1339 pDeviceID: DEVINSTID_W,
1340 Buffer: PWCHAR,
1341 BufferLen: ULONG,
1342 ulFlags: ULONG,
1343 hMachine: HMACHINE,
1344 ) -> CONFIGRET;
1345 pub fn CM_Get_Device_Interface_List_SizeA(
1346 pulLen: PULONG,
1347 InterfaceClassGuid: LPGUID,
1348 pDeviceID: DEVINSTID_A,
1349 ulFlags: ULONG,
1350 ) -> CONFIGRET;
1351 pub fn CM_Get_Device_Interface_List_SizeW(
1352 pulLen: PULONG,
1353 InterfaceClassGuid: LPGUID,
1354 pDeviceID: DEVINSTID_W,
1355 ulFlags: ULONG,
1356 ) -> CONFIGRET;
1357 pub fn CM_Get_Device_Interface_List_Size_ExA(
1358 pulLen: PULONG,
1359 InterfaceClassGuid: LPGUID,
1360 pDeviceID: DEVINSTID_A,
1361 ulFlags: ULONG,
1362 hMachine: HMACHINE,
1363 ) -> CONFIGRET;
1364 pub fn CM_Get_Device_Interface_List_Size_ExW(
1365 pulLen: PULONG,
1366 InterfaceClassGuid: LPGUID,
1367 pDeviceID: DEVINSTID_W,
1368 ulFlags: ULONG,
1369 hMachine: HMACHINE,
1370 ) -> CONFIGRET;
60c5eb7d
XL
1371 pub fn CM_Get_Device_Interface_PropertyW(
1372 pszDeviceInterface: LPCWSTR,
1373 PropertyKey: *const DEVPROPKEY,
1374 PropertyType: *mut DEVPROPTYPE,
1375 PropertyBuffer: PBYTE,
1376 PropertyBufferSize: PULONG,
1377 ulFlags: ULONG,
1378 ) -> CONFIGRET;
1379 pub fn CM_Get_Device_Interface_PropertyExW(
1380 pszDeviceInterface: LPCWSTR,
1381 PropertyKey: *const DEVPROPKEY,
1382 PropertyType: *mut DEVPROPTYPE,
1383 PropertyBuffer: PBYTE,
1384 PropertyBufferSize: PULONG,
1385 ulFlags: ULONG,
1386 hMachine: HMACHINE,
1387 ) -> CONFIGRET;
ff7c6d11
XL
1388 pub fn CM_Get_Log_Conf_Priority(
1389 lcLogConf: LOG_CONF,
1390 pPriority: PRIORITY,
1391 ulFlags: ULONG,
1392 ) -> CONFIGRET;
1393 pub fn CM_Get_Log_Conf_Priority_Ex(
1394 lcLogConf: LOG_CONF,
1395 pPriority: PRIORITY,
1396 ulFlags: ULONG,
1397 hMachine: HMACHINE,
1398 ) -> CONFIGRET;
1399 pub fn CM_Get_Next_Log_Conf(
1400 plcLogConf: PLOG_CONF,
1401 lcLogConf: LOG_CONF,
1402 ulFlags: ULONG,
1403 ) -> CONFIGRET;
1404 pub fn CM_Get_Next_Log_Conf_Ex(
1405 plcLogConf: PLOG_CONF,
1406 lcLogConf: LOG_CONF,
1407 ulFlags: ULONG,
1408 hMachine: HMACHINE,
1409 ) -> CONFIGRET;
1410 pub fn CM_Get_Parent(
1411 pdnDevInst: PDEVINST,
1412 dnDevInst: DEVINST,
1413 ulFlags: ULONG,
1414 ) -> CONFIGRET;
1415 pub fn CM_Get_Parent_Ex(
1416 pdnDevInst: PDEVINST,
1417 dnDevInst: DEVINST,
1418 ulFlags: ULONG,
1419 hMachine: HMACHINE,
1420 ) -> CONFIGRET;
1421 pub fn CM_Get_Res_Des_Data(
1422 rdResDes: RES_DES,
1423 Buffer: PVOID,
1424 BufferLen: ULONG,
1425 ulFlags: ULONG,
1426 ) -> CONFIGRET;
1427 pub fn CM_Get_Res_Des_Data_Ex(
1428 rdResDes: RES_DES,
1429 Buffer: PVOID,
1430 BufferLen: ULONG,
1431 ulFlags: ULONG,
1432 hMachine: HMACHINE,
1433 ) -> CONFIGRET;
1434 pub fn CM_Get_Res_Des_Data_Size(
1435 pulSize: PULONG,
1436 rdResDes: RES_DES,
1437 ulFlags: ULONG,
1438 ) -> CONFIGRET;
1439 pub fn CM_Get_Res_Des_Data_Size_Ex(
1440 pulSize: PULONG,
1441 rdResDes: RES_DES,
1442 ulFlags: ULONG,
1443 hMachine: HMACHINE,
1444 ) -> CONFIGRET;
1445 pub fn CM_Get_Sibling(
1446 pdnDevInst: PDEVINST,
1447 dnDevInst: DEVINST,
1448 ulFlags: ULONG,
1449 ) -> CONFIGRET;
1450 pub fn CM_Get_Sibling_Ex(
1451 pdnDevInst: PDEVINST,
1452 dnDevInst: DEVINST,
1453 ulFlags: ULONG,
1454 hMachine: HMACHINE,
1455 ) -> CONFIGRET;
1456 pub fn CM_Get_Version() -> WORD;
1457 pub fn CM_Get_Version_Ex(
1458 hMachine: HMACHINE,
1459 ) -> WORD;
1460 pub fn CM_Is_Version_Available(
1461 wVersion: WORD,
1462 ) -> BOOL;
1463 pub fn CM_Is_Version_Available_Ex(
1464 wVersion: WORD,
1465 hMachine: HMACHINE,
1466 ) -> BOOL;
1467 pub fn CM_Intersect_Range_List(
1468 rlhOld1: RANGE_LIST,
1469 rlhOld2: RANGE_LIST,
1470 rlhNew: RANGE_LIST,
1471 ulFlags: ULONG,
1472 ) -> CONFIGRET;
1473 pub fn CM_Invert_Range_List(
1474 rlhOld: RANGE_LIST,
1475 rlhNew: RANGE_LIST,
1476 ullMaxValue: DWORDLONG,
1477 ulFlags: ULONG,
1478 ) -> CONFIGRET;
1479 pub fn CM_Locate_DevNodeA(
1480 pdnDevInst: PDEVINST,
1481 pDeviceID: DEVINSTID_A,
1482 ulFlags: ULONG,
1483 ) -> CONFIGRET;
1484 pub fn CM_Locate_DevNodeW(
1485 pdnDevInst: PDEVINST,
1486 pDeviceID: DEVINSTID_W,
1487 ulFlags: ULONG,
1488 ) -> CONFIGRET;
1489 pub fn CM_Locate_DevNode_ExA(
1490 pdnDevInst: PDEVINST,
1491 pDeviceID: DEVINSTID_A,
1492 ulFlags: ULONG,
1493 hMachine: HMACHINE,
1494 ) -> CONFIGRET;
1495 pub fn CM_Locate_DevNode_ExW(
1496 pdnDevInst: PDEVINST,
1497 pDeviceID: DEVINSTID_W,
1498 ulFlags: ULONG,
1499 hMachine: HMACHINE,
1500 ) -> CONFIGRET;
1501 pub fn CM_Merge_Range_List(
1502 rlhOld1: RANGE_LIST,
1503 rlhOld2: RANGE_LIST,
1504 rlhNew: RANGE_LIST,
1505 ulFlags: ULONG,
1506 ) -> CONFIGRET;
1507 pub fn CM_Modify_Res_Des(
1508 prdResDes: PRES_DES,
1509 rdResDes: RES_DES,
1510 ResourceID: RESOURCEID,
1511 ResourceData: PCVOID,
1512 ResourceLen: ULONG,
1513 ulFlags: ULONG,
1514 ) -> CONFIGRET;
1515 pub fn CM_Modify_Res_Des_Ex(
1516 prdResDes: PRES_DES,
1517 rdResDes: RES_DES,
1518 ResourceID: RESOURCEID,
1519 ResourceData: PCVOID,
1520 ResourceLen: ULONG,
1521 ulFlags: ULONG,
1522 hMachine: HMACHINE,
1523 ) -> CONFIGRET;
1524 pub fn CM_Move_DevNode(
1525 dnFromDevInst: DEVINST,
1526 dnToDevInst: DEVINST,
1527 ulFlags: ULONG,
1528 ) -> CONFIGRET;
1529 pub fn CM_Move_DevNode_Ex(
1530 dnFromDevInst: DEVINST,
1531 dnToDevInst: DEVINST,
1532 ulFlags: ULONG,
1533 hMachine: HMACHINE,
1534 ) -> CONFIGRET;
1535 pub fn CM_Next_Range(
1536 preElement: PRANGE_LIST,
1537 pullStart: PDWORDLONG,
1538 pullEnd: PDWORDLONG,
1539 ulFlags: ULONG,
1540 ) -> CONFIGRET;
1541 pub fn CM_Get_Next_Res_Des(
1542 prdResDes: PRES_DES,
1543 rdResDes: RES_DES,
1544 ForResource: RESOURCEID,
1545 pResourceID: PRESOURCEID,
1546 ulFlags: ULONG,
1547 ) -> CONFIGRET;
1548 pub fn CM_Get_Next_Res_Des_Ex(
1549 prdResDes: PRES_DES,
1550 rdResDes: RES_DES,
1551 ForResource: RESOURCEID,
1552 pResourceID: PRESOURCEID,
1553 ulFlags: ULONG,
1554 hMachine: HMACHINE,
1555 ) -> CONFIGRET;
1556 pub fn CM_Open_Class_KeyA(
1557 ClassGuid: LPGUID,
1558 pszClassName: LPCSTR,
1559 samDesired: REGSAM,
1560 Disposition: REGDISPOSITION,
1561 phkClass: PHKEY,
1562 ulFlags: ULONG,
1563 ) -> CONFIGRET;
1564 pub fn CM_Open_Class_KeyW(
1565 ClassGuid: LPGUID,
1566 pszClassName: LPCWSTR,
1567 samDesired: REGSAM,
1568 Disposition: REGDISPOSITION,
1569 phkClass: PHKEY,
1570 ulFlags: ULONG,
1571 ) -> CONFIGRET;
1572 pub fn CM_Open_Class_Key_ExA(
1573 ClassGuid: LPGUID,
1574 pszClassName: LPCSTR,
1575 samDesired: REGSAM,
1576 Disposition: REGDISPOSITION,
1577 phkClass: PHKEY,
1578 ulFlags: ULONG,
1579 hMachine: HMACHINE,
1580 ) -> CONFIGRET;
1581 pub fn CM_Open_Class_Key_ExW(
1582 ClassGuid: LPGUID,
1583 pszClassName: LPCWSTR,
1584 samDesired: REGSAM,
1585 Disposition: REGDISPOSITION,
1586 phkClass: PHKEY,
1587 ulFlags: ULONG,
1588 hMachine: HMACHINE,
1589 ) -> CONFIGRET;
1590 pub fn CM_Open_DevNode_Key(
1591 dnDevNode: DEVINST,
1592 samDesired: REGSAM,
1593 ulHardwareProfile: ULONG,
1594 Disposition: REGDISPOSITION,
1595 phkDevice: PHKEY,
1596 ulFlags: ULONG,
1597 ) -> CONFIGRET;
1598 pub fn CM_Open_DevNode_Key_Ex(
1599 dnDevNode: DEVINST,
1600 samDesired: REGSAM,
1601 ulHardwareProfile: ULONG,
1602 Disposition: REGDISPOSITION,
1603 phkDevice: PHKEY,
1604 ulFlags: ULONG,
1605 hMachine: HMACHINE,
1606 ) -> CONFIGRET;
1607 pub fn CM_Open_Device_Interface_KeyA(
1608 pszDeviceInterface: LPCSTR,
1609 samDesired: REGSAM,
1610 Disposition: REGDISPOSITION,
1611 phkDeviceInterface: PHKEY,
1612 ulFlags: ULONG,
1613 ) -> CONFIGRET;
1614 pub fn CM_Open_Device_Interface_KeyW(
1615 pszDeviceInterface: LPCWSTR,
1616 samDesired: REGSAM,
1617 Disposition: REGDISPOSITION,
1618 phkDeviceInterface: PHKEY,
1619 ulFlags: ULONG,
1620 ) -> CONFIGRET;
1621 pub fn CM_Open_Device_Interface_Key_ExA(
1622 pszDeviceInterface: LPCSTR,
1623 samDesired: REGSAM,
1624 Disposition: REGDISPOSITION,
1625 phkDeviceInterface: PHKEY,
1626 ulFlags: ULONG,
1627 hMachine: HMACHINE,
1628 ) -> CONFIGRET;
1629 pub fn CM_Open_Device_Interface_Key_ExW(
1630 pszDeviceInterface: LPCWSTR,
1631 samDesired: REGSAM,
1632 Disposition: REGDISPOSITION,
1633 phkDeviceInterface: PHKEY,
1634 ulFlags: ULONG,
1635 hMachine: HMACHINE,
1636 ) -> CONFIGRET;
1637 pub fn CM_Delete_Device_Interface_KeyA(
1638 pszDeviceInterface: LPCSTR,
1639 ulFlags: ULONG,
1640 ) -> CONFIGRET;
1641 pub fn CM_Delete_Device_Interface_KeyW(
1642 pszDeviceInterface: LPCWSTR,
1643 ulFlags: ULONG,
1644 ) -> CONFIGRET;
1645 pub fn CM_Delete_Device_Interface_Key_ExA(
1646 pszDeviceInterface: LPCSTR,
1647 ulFlags: ULONG,
1648 hMachine: HMACHINE,
1649 ) -> CONFIGRET;
1650 pub fn CM_Delete_Device_Interface_Key_ExW(
1651 pszDeviceInterface: LPCWSTR,
1652 ulFlags: ULONG,
1653 hMachine: HMACHINE,
1654 ) -> CONFIGRET;
1655 pub fn CM_Query_Arbitrator_Free_Data(
1656 pData: PVOID,
1657 DataLen: ULONG,
1658 dnDevInst: DEVINST,
1659 ResourceID: RESOURCEID,
1660 ulFlags: ULONG,
1661 ) -> CONFIGRET;
1662 pub fn CM_Query_Arbitrator_Free_Data_Ex(
1663 pData: PVOID,
1664 DataLen: ULONG,
1665 dnDevInst: DEVINST,
1666 ResourceID: RESOURCEID,
1667 ulFlags: ULONG,
1668 hMachine: HMACHINE,
1669 ) -> CONFIGRET;
1670 pub fn CM_Query_Arbitrator_Free_Size(
1671 pulSize: PULONG,
1672 dnDevInst: DEVINST,
1673 ResourceID: RESOURCEID,
1674 ulFlags: ULONG,
1675 ) -> CONFIGRET;
1676 pub fn CM_Query_Arbitrator_Free_Size_Ex(
1677 pulSize: PULONG,
1678 dnDevInst: DEVINST,
1679 ResourceID: RESOURCEID,
1680 ulFlags: ULONG,
1681 hMachine: HMACHINE,
1682 ) -> CONFIGRET;
1683 pub fn CM_Query_Remove_SubTree(
1684 dnAncestor: DEVINST,
1685 ulFlags: ULONG,
1686 ) -> CONFIGRET;
1687 pub fn CM_Query_Remove_SubTree_Ex(
1688 dnAncestor: DEVINST,
1689 ulFlags: ULONG,
1690 hMachine: HMACHINE,
1691 ) -> CONFIGRET;
1692 pub fn CM_Query_And_Remove_SubTreeA(
1693 dnAncestor: DEVINST,
1694 pVetoType: PPNP_VETO_TYPE,
1695 pszVetoName: LPSTR,
1696 ulNameLength: ULONG,
1697 ulFlags: ULONG,
1698 ) -> CONFIGRET;
1699 pub fn CM_Query_And_Remove_SubTree_ExA(
1700 dnAncestor: DEVINST,
1701 pVetoType: PPNP_VETO_TYPE,
1702 pszVetoName: LPSTR,
1703 ulNameLength: ULONG,
1704 ulFlags: ULONG,
1705 hMachine: HMACHINE,
1706 ) -> CONFIGRET;
1707 pub fn CM_Query_And_Remove_SubTreeW(
1708 dnAncestor: DEVINST,
1709 pVetoType: PPNP_VETO_TYPE,
1710 pszVetoName: LPWSTR,
1711 ulNameLength: ULONG,
1712 ulFlags: ULONG,
1713 ) -> CONFIGRET;
1714 pub fn CM_Query_And_Remove_SubTree_ExW(
1715 dnAncestor: DEVINST,
1716 pVetoType: PPNP_VETO_TYPE,
1717 pszVetoName: LPWSTR,
1718 ulNameLength: ULONG,
1719 ulFlags: ULONG,
1720 hMachine: HMACHINE,
1721 ) -> CONFIGRET;
1722 pub fn CM_Request_Device_EjectA(
1723 dnDevInst: DEVINST,
1724 pVetoType: PPNP_VETO_TYPE,
1725 pszVetoName: LPSTR,
1726 ulNameLength: ULONG,
1727 ulFlags: ULONG,
1728 ) -> CONFIGRET;
1729 pub fn CM_Request_Device_Eject_ExA(
1730 dnDevInst: DEVINST,
1731 pVetoType: PPNP_VETO_TYPE,
1732 pszVetoName: LPSTR,
1733 ulNameLength: ULONG,
1734 ulFlags: ULONG,
1735 hMachine: HMACHINE,
1736 ) -> CONFIGRET;
1737 pub fn CM_Request_Device_EjectW(
1738 dnDevInst: DEVINST,
1739 pVetoType: PPNP_VETO_TYPE,
1740 pszVetoName: LPWSTR,
1741 ulNameLength: ULONG,
1742 ulFlags: ULONG,
1743 ) -> CONFIGRET;
1744 pub fn CM_Request_Device_Eject_ExW(
1745 dnDevInst: DEVINST,
1746 pVetoType: PPNP_VETO_TYPE,
1747 pszVetoName: LPWSTR,
1748 ulNameLength: ULONG,
1749 ulFlags: ULONG,
1750 hMachine: HMACHINE,
1751 ) -> CONFIGRET;
1752 pub fn CM_Reenumerate_DevNode(
1753 dnDevInst: DEVINST,
1754 ulFlags: ULONG,
1755 ) -> CONFIGRET;
1756 pub fn CM_Reenumerate_DevNode_Ex(
1757 dnDevInst: DEVINST,
1758 ulFlags: ULONG,
1759 hMachine: HMACHINE,
1760 ) -> CONFIGRET;
1761 pub fn CM_Register_Device_InterfaceA(
1762 dnDevInst: DEVINST,
1763 InterfaceClassGuid: LPGUID,
1764 pszReference: LPCSTR,
1765 pszDeviceInterface: LPSTR,
1766 pulLength: PULONG,
1767 ulFlags: ULONG,
1768 ) -> CONFIGRET;
1769 pub fn CM_Register_Device_InterfaceW(
1770 dnDevInst: DEVINST,
1771 InterfaceClassGuid: LPGUID,
1772 pszReference: LPCWSTR,
1773 pszDeviceInterface: LPWSTR,
1774 pulLength: PULONG,
1775 ulFlags: ULONG,
1776 ) -> CONFIGRET;
1777 pub fn CM_Register_Device_Interface_ExA(
1778 dnDevInst: DEVINST,
1779 InterfaceClassGuid: LPGUID,
1780 pszReference: LPCSTR,
1781 pszDeviceInterface: LPSTR,
1782 pulLength: PULONG,
1783 ulFlags: ULONG,
1784 hMachine: HMACHINE,
1785 ) -> CONFIGRET;
1786 pub fn CM_Register_Device_Interface_ExW(
1787 dnDevInst: DEVINST,
1788 InterfaceClassGuid: LPGUID,
1789 pszReference: LPCWSTR,
1790 pszDeviceInterface: LPWSTR,
1791 pulLength: PULONG,
1792 ulFlags: ULONG,
1793 hMachine: HMACHINE,
1794 ) -> CONFIGRET;
1795 pub fn CM_Set_DevNode_Problem_Ex(
1796 dnDevInst: DEVINST,
1797 ulProblem: ULONG,
1798 ulFlags: ULONG,
1799 hMachine: HMACHINE,
1800 ) -> CONFIGRET;
1801 pub fn CM_Set_DevNode_Problem(
1802 dnDevInst: DEVINST,
1803 ulProblem: ULONG,
1804 ulFlags: ULONG,
1805 ) -> CONFIGRET;
1806 pub fn CM_Unregister_Device_InterfaceA(
1807 pszDeviceInterface: LPCSTR,
1808 ulFlags: ULONG,
1809 ) -> CONFIGRET;
1810 pub fn CM_Unregister_Device_InterfaceW(
1811 pszDeviceInterface: LPCWSTR,
1812 ulFlags: ULONG,
1813 ) -> CONFIGRET;
1814 pub fn CM_Unregister_Device_Interface_ExA(
1815 pszDeviceInterface: LPCSTR,
1816 ulFlags: ULONG,
1817 hMachine: HMACHINE,
1818 ) -> CONFIGRET;
1819 pub fn CM_Unregister_Device_Interface_ExW(
1820 pszDeviceInterface: LPCWSTR,
1821 ulFlags: ULONG,
1822 hMachine: HMACHINE,
1823 ) -> CONFIGRET;
1824 pub fn CM_Register_Device_Driver(
1825 dnDevInst: DEVINST,
1826 ulFlags: ULONG,
1827 ) -> CONFIGRET;
1828 pub fn CM_Register_Device_Driver_Ex(
1829 dnDevInst: DEVINST,
1830 ulFlags: ULONG,
1831 hMachine: HMACHINE,
1832 ) -> CONFIGRET;
1833 pub fn CM_Remove_SubTree(
1834 dnAncestor: DEVINST,
1835 ulFlags: ULONG,
1836 ) -> CONFIGRET;
1837 pub fn CM_Remove_SubTree_Ex(
1838 dnAncestor: DEVINST,
1839 ulFlags: ULONG,
1840 hMachine: HMACHINE,
1841 ) -> CONFIGRET;
1842 pub fn CM_Set_DevNode_Registry_PropertyA(
1843 dnDevInst: DEVINST,
1844 ulProperty: ULONG,
1845 Buffer: PCVOID,
1846 ulLength: ULONG,
1847 ulFlags: ULONG,
1848 ) -> CONFIGRET;
1849 pub fn CM_Set_DevNode_Registry_PropertyW(
1850 dnDevInst: DEVINST,
1851 ulProperty: ULONG,
1852 Buffer: PCVOID,
1853 ulLength: ULONG,
1854 ulFlags: ULONG,
1855 ) -> CONFIGRET;
1856 pub fn CM_Set_DevNode_Registry_Property_ExA(
1857 dnDevInst: DEVINST,
1858 ulProperty: ULONG,
1859 Buffer: PCVOID,
1860 ulLength: ULONG,
1861 ulFlags: ULONG,
1862 hMachine: HMACHINE,
1863 ) -> CONFIGRET;
1864 pub fn CM_Set_DevNode_Registry_Property_ExW(
1865 dnDevInst: DEVINST,
1866 ulProperty: ULONG,
1867 Buffer: PCVOID,
1868 ulLength: ULONG,
1869 ulFlags: ULONG,
1870 hMachine: HMACHINE,
1871 ) -> CONFIGRET;
1872 pub fn CM_Is_Dock_Station_Present(
1873 pbPresent: PBOOL,
1874 ) -> CONFIGRET;
1875 pub fn CM_Is_Dock_Station_Present_Ex(
1876 pbPresent: PBOOL,
1877 hMachine: HMACHINE,
1878 ) -> CONFIGRET;
1879 pub fn CM_Request_Eject_PC() -> CONFIGRET;
1880 pub fn CM_Request_Eject_PC_Ex(
1881 hMachine: HMACHINE,
1882 ) -> CONFIGRET;
1883 pub fn CM_Set_HW_Prof_FlagsA(
1884 pDeviceID: DEVINSTID_A,
1885 ulConfig: ULONG,
1886 ulValue: ULONG,
1887 ulFlags: ULONG,
1888 ) -> CONFIGRET;
1889 pub fn CM_Set_HW_Prof_FlagsW(
1890 pDeviceID: DEVINSTID_W,
1891 ulConfig: ULONG,
1892 ulValue: ULONG,
1893 ulFlags: ULONG,
1894 ) -> CONFIGRET;
1895 pub fn CM_Set_HW_Prof_Flags_ExA(
1896 pDeviceID: DEVINSTID_A,
1897 ulConfig: ULONG,
1898 ulValue: ULONG,
1899 ulFlags: ULONG,
1900 hMachine: HMACHINE,
1901 ) -> CONFIGRET;
1902 pub fn CM_Set_HW_Prof_Flags_ExW(
1903 pDeviceID: DEVINSTID_A,
1904 ulConfig: ULONG,
1905 ulValue: ULONG,
1906 ulFlags: ULONG,
1907 hMachine: HMACHINE,
1908 ) -> CONFIGRET;
1909 pub fn CM_Setup_DevNode(
1910 dnDevInst: DEVINST,
1911 ulFlags: ULONG,
1912 ) -> CONFIGRET;
1913 pub fn CM_Setup_DevNode_Ex(
1914 dnDevInst: DEVINST,
1915 ulFlags: ULONG,
1916 hMachine: HMACHINE,
1917 ) -> CONFIGRET;
1918 pub fn CM_Test_Range_Available(
1919 ullStartValue: DWORDLONG,
1920 ullEndValue: DWORDLONG,
1921 rlh: RANGE_LIST,
1922 ulFlags: ULONG,
1923 ) -> CONFIGRET;
1924 pub fn CM_Uninstall_DevNode(
1925 dnDevInst: DEVNODE,
1926 ulFlags: ULONG,
1927 ) -> CONFIGRET;
1928 pub fn CM_Uninstall_DevNode_Ex(
1929 dnDevInst: DEVNODE,
1930 ulFlags: ULONG,
1931 hMachine: HMACHINE,
1932 ) -> CONFIGRET;
1933 pub fn CM_Run_Detection(
1934 ulFlags: ULONG,
1935 ) -> CONFIGRET;
1936 pub fn CM_Run_Detection_Ex(
1937 ulFlags: ULONG,
1938 hMachine: HMACHINE,
1939 ) -> CONFIGRET;
1940 pub fn CM_Set_HW_Prof(
1941 ulHardwareProfile: ULONG,
1942 ulFlags: ULONG,
1943 ) -> CONFIGRET;
1944 pub fn CM_Set_HW_Prof_Ex(
1945 ulHardwareProfile: ULONG,
1946 ulFlags: ULONG,
1947 hMachine: HMACHINE,
1948 ) -> CONFIGRET;
1949 pub fn CM_Query_Resource_Conflict_List(
1950 pclConflictList: PCONFLICT_LIST,
1951 dnDevInst: DEVINST,
1952 ResourceID: RESOURCEID,
1953 ResourceData: PCVOID,
1954 ResourceLen: ULONG,
1955 ulFlags: ULONG,
1956 hMachine: HMACHINE,
1957 ) -> CONFIGRET;
1958 pub fn CM_Free_Resource_Conflict_Handle(
1959 clConflictList: CONFLICT_LIST,
1960 ) -> CONFIGRET;
1961 pub fn CM_Get_Resource_Conflict_Count(
1962 clConflictList: CONFLICT_LIST,
1963 pulCount: PULONG,
1964 ) -> CONFIGRET;
1965 pub fn CM_Get_Resource_Conflict_DetailsA(
1966 clConflictList: CONFLICT_LIST,
1967 ulIndex: ULONG,
1968 pConflictDetails: PCONFLICT_DETAILS_A,
1969 ) -> CONFIGRET;
1970 pub fn CM_Get_Resource_Conflict_DetailsW(
1971 clConflictList: CONFLICT_LIST,
1972 ulIndex: ULONG,
1973 pConflictDetails: PCONFLICT_DETAILS_W,
1974 ) -> CONFIGRET;
1975 pub fn CM_Get_Class_Registry_PropertyW(
1976 ClassGuid: LPGUID,
1977 ulProperty: ULONG,
1978 pulRegDataType: PULONG,
1979 Buffer: PVOID,
1980 pulLength: PULONG,
1981 ulFlags: ULONG,
1982 hMachine: HMACHINE,
1983 ) -> CONFIGRET;
1984 pub fn CM_Set_Class_Registry_PropertyW(
1985 ClassGuid: LPGUID,
1986 ulProperty: ULONG,
1987 Buffer: PCVOID,
1988 ulLength: ULONG,
1989 ulFlags: ULONG,
1990 hMachine: HMACHINE,
1991 ) -> CONFIGRET;
1992 pub fn CM_Get_Class_Registry_PropertyA(
1993 ClassGuid: LPGUID,
1994 ulProperty: ULONG,
1995 pulRegDataType: PULONG,
1996 Buffer: PVOID,
1997 pulLength: PULONG,
1998 ulFlags: ULONG,
1999 hMachine: HMACHINE,
2000 ) -> CONFIGRET;
2001 pub fn CM_Set_Class_Registry_PropertyA(
2002 ClassGuid: LPGUID,
2003 ulProperty: ULONG,
2004 Buffer: PCVOID,
2005 ulLength: ULONG,
2006 ulFlags: ULONG,
2007 hMachine: HMACHINE,
2008 ) -> CONFIGRET;
2009 pub fn CMP_WaitNoPendingInstallEvents(
2010 dwTimeout: DWORD,
2011 ) -> DWORD;
2012}
2013pub const CR_SUCCESS: CONFIGRET = 0x00000000;
2014pub const CR_DEFAULT: CONFIGRET = 0x00000001;
2015pub const CR_OUT_OF_MEMORY: CONFIGRET = 0x00000002;
2016pub const CR_INVALID_POINTER: CONFIGRET = 0x00000003;
2017pub const CR_INVALID_FLAG: CONFIGRET = 0x00000004;
2018pub const CR_INVALID_DEVNODE: CONFIGRET = 0x00000005;
2019pub const CR_INVALID_DEVINST: CONFIGRET = CR_INVALID_DEVNODE;
2020pub const CR_INVALID_RES_DES: CONFIGRET = 0x00000006;
2021pub const CR_INVALID_LOG_CONF: CONFIGRET = 0x00000007;
2022pub const CR_INVALID_ARBITRATOR: CONFIGRET = 0x00000008;
2023pub const CR_INVALID_NODELIST: CONFIGRET = 0x00000009;
2024pub const CR_DEVNODE_HAS_REQS: CONFIGRET = 0x0000000A;
2025pub const CR_DEVINST_HAS_REQS: CONFIGRET = CR_DEVNODE_HAS_REQS;
2026pub const CR_INVALID_RESOURCEID: CONFIGRET = 0x0000000B;
2027pub const CR_DLVXD_NOT_FOUND: CONFIGRET = 0x0000000C;
2028pub const CR_NO_SUCH_DEVNODE: CONFIGRET = 0x0000000D;
2029pub const CR_NO_SUCH_DEVINST: CONFIGRET = CR_NO_SUCH_DEVNODE;
2030pub const CR_NO_MORE_LOG_CONF: CONFIGRET = 0x0000000E;
2031pub const CR_NO_MORE_RES_DES: CONFIGRET = 0x0000000F;
2032pub const CR_ALREADY_SUCH_DEVNODE: CONFIGRET = 0x00000010;
2033pub const CR_ALREADY_SUCH_DEVINST: CONFIGRET = CR_ALREADY_SUCH_DEVNODE;
2034pub const CR_INVALID_RANGE_LIST: CONFIGRET = 0x00000011;
2035pub const CR_INVALID_RANGE: CONFIGRET = 0x00000012;
2036pub const CR_FAILURE: CONFIGRET = 0x00000013;
2037pub const CR_NO_SUCH_LOGICAL_DEV: CONFIGRET = 0x00000014;
2038pub const CR_CREATE_BLOCKED: CONFIGRET = 0x00000015;
2039pub const CR_NOT_SYSTEM_VM: CONFIGRET = 0x00000016;
2040pub const CR_REMOVE_VETOED: CONFIGRET = 0x00000017;
2041pub const CR_APM_VETOED: CONFIGRET = 0x00000018;
2042pub const CR_INVALID_LOAD_TYPE: CONFIGRET = 0x00000019;
2043pub const CR_BUFFER_SMALL: CONFIGRET = 0x0000001A;
2044pub const CR_NO_ARBITRATOR: CONFIGRET = 0x0000001B;
2045pub const CR_NO_REGISTRY_HANDLE: CONFIGRET = 0x0000001C;
2046pub const CR_REGISTRY_ERROR: CONFIGRET = 0x0000001D;
2047pub const CR_INVALID_DEVICE_ID: CONFIGRET = 0x0000001E;
2048pub const CR_INVALID_DATA: CONFIGRET = 0x0000001F;
2049pub const CR_INVALID_API: CONFIGRET = 0x00000020;
2050pub const CR_DEVLOADER_NOT_READY: CONFIGRET = 0x00000021;
2051pub const CR_NEED_RESTART: CONFIGRET = 0x00000022;
2052pub const CR_NO_MORE_HW_PROFILES: CONFIGRET = 0x00000023;
2053pub const CR_DEVICE_NOT_THERE: CONFIGRET = 0x00000024;
2054pub const CR_NO_SUCH_VALUE: CONFIGRET = 0x00000025;
2055pub const CR_WRONG_TYPE: CONFIGRET = 0x00000026;
2056pub const CR_INVALID_PRIORITY: CONFIGRET = 0x00000027;
2057pub const CR_NOT_DISABLEABLE: CONFIGRET = 0x00000028;
2058pub const CR_FREE_RESOURCES: CONFIGRET = 0x00000029;
2059pub const CR_QUERY_VETOED: CONFIGRET = 0x0000002A;
2060pub const CR_CANT_SHARE_IRQ: CONFIGRET = 0x0000002B;
2061pub const CR_NO_DEPENDENT: CONFIGRET = 0x0000002C;
2062pub const CR_SAME_RESOURCES: CONFIGRET = 0x0000002D;
2063pub const CR_NO_SUCH_REGISTRY_KEY: CONFIGRET = 0x0000002E;
2064pub const CR_INVALID_MACHINENAME: CONFIGRET = 0x0000002F;
2065pub const CR_REMOTE_COMM_FAILURE: CONFIGRET = 0x00000030;
2066pub const CR_MACHINE_UNAVAILABLE: CONFIGRET = 0x00000031;
2067pub const CR_NO_CM_SERVICES: CONFIGRET = 0x00000032;
2068pub const CR_ACCESS_DENIED: CONFIGRET = 0x00000033;
2069pub const CR_CALL_NOT_IMPLEMENTED: CONFIGRET = 0x00000034;
2070pub const CR_INVALID_PROPERTY: CONFIGRET = 0x00000035;
2071pub const CR_DEVICE_INTERFACE_ACTIVE: CONFIGRET = 0x00000036;
2072pub const CR_NO_SUCH_DEVICE_INTERFACE: CONFIGRET = 0x00000037;
2073pub const CR_INVALID_REFERENCE_STRING: CONFIGRET = 0x00000038;
2074pub const CR_INVALID_CONFLICT_LIST: CONFIGRET = 0x00000039;
2075pub const CR_INVALID_INDEX: CONFIGRET = 0x0000003A;
2076pub const CR_INVALID_STRUCTURE_SIZE: CONFIGRET = 0x0000003B;
2077pub const NUM_CR_RESULTS: CONFIGRET = 0x0000003C;