]> git.proxmox.com Git - rustc.git/blame - vendor/windows-sys-0.28.0/src/Windows/Win32/System/Registry/mod.rs
New upstream version 1.66.0+dfsg1
[rustc.git] / vendor / windows-sys-0.28.0 / src / Windows / Win32 / System / Registry / mod.rs
CommitLineData
064997fb
FG
1#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2#[link(name = "windows")]
3extern "system" {
4 #[cfg(feature = "Win32_Foundation")]
5 pub fn GetRegistryValueWithFallbackW(hkeyprimary: HKEY, pwszprimarysubkey: super::super::Foundation::PWSTR, hkeyfallback: HKEY, pwszfallbacksubkey: super::super::Foundation::PWSTR, pwszvalue: super::super::Foundation::PWSTR, dwflags: u32, pdwtype: *mut u32, pvdata: *mut ::core::ffi::c_void, cbdatain: u32, pcbdataout: *mut u32) -> super::super::Foundation::LSTATUS;
6 #[cfg(feature = "Win32_Foundation")]
7 pub fn RegCloseKey(hkey: HKEY) -> super::super::Foundation::LSTATUS;
8 #[cfg(feature = "Win32_Foundation")]
9 pub fn RegConnectRegistryA(lpmachinename: super::super::Foundation::PSTR, hkey: HKEY, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
10 #[cfg(feature = "Win32_Foundation")]
11 pub fn RegConnectRegistryExA(lpmachinename: super::super::Foundation::PSTR, hkey: HKEY, flags: u32, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
12 #[cfg(feature = "Win32_Foundation")]
13 pub fn RegConnectRegistryExW(lpmachinename: super::super::Foundation::PWSTR, hkey: HKEY, flags: u32, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
14 #[cfg(feature = "Win32_Foundation")]
15 pub fn RegConnectRegistryW(lpmachinename: super::super::Foundation::PWSTR, hkey: HKEY, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
16 #[cfg(feature = "Win32_Foundation")]
17 pub fn RegCopyTreeA(hkeysrc: HKEY, lpsubkey: super::super::Foundation::PSTR, hkeydest: HKEY) -> super::super::Foundation::LSTATUS;
18 #[cfg(feature = "Win32_Foundation")]
19 pub fn RegCopyTreeW(hkeysrc: HKEY, lpsubkey: super::super::Foundation::PWSTR, hkeydest: HKEY) -> super::super::Foundation::LSTATUS;
20 #[cfg(feature = "Win32_Foundation")]
21 pub fn RegCreateKeyA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
22 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
23 pub fn RegCreateKeyExA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, reserved: u32, lpclass: super::super::Foundation::PSTR, dwoptions: REG_OPEN_CREATE_OPTIONS, samdesired: REG_SAM_FLAGS, lpsecurityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, phkresult: *mut HKEY, lpdwdisposition: *mut REG_CREATE_KEY_DISPOSITION) -> super::super::Foundation::LSTATUS;
24 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
25 pub fn RegCreateKeyExW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, reserved: u32, lpclass: super::super::Foundation::PWSTR, dwoptions: REG_OPEN_CREATE_OPTIONS, samdesired: REG_SAM_FLAGS, lpsecurityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, phkresult: *mut HKEY, lpdwdisposition: *mut REG_CREATE_KEY_DISPOSITION) -> super::super::Foundation::LSTATUS;
26 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
27 pub fn RegCreateKeyTransactedA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, reserved: u32, lpclass: super::super::Foundation::PSTR, dwoptions: REG_OPEN_CREATE_OPTIONS, samdesired: REG_SAM_FLAGS, lpsecurityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, phkresult: *mut HKEY, lpdwdisposition: *mut REG_CREATE_KEY_DISPOSITION, htransaction: super::super::Foundation::HANDLE, pextendedparemeter: *mut ::core::ffi::c_void) -> super::super::Foundation::LSTATUS;
28 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
29 pub fn RegCreateKeyTransactedW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, reserved: u32, lpclass: super::super::Foundation::PWSTR, dwoptions: REG_OPEN_CREATE_OPTIONS, samdesired: REG_SAM_FLAGS, lpsecurityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, phkresult: *mut HKEY, lpdwdisposition: *mut REG_CREATE_KEY_DISPOSITION, htransaction: super::super::Foundation::HANDLE, pextendedparemeter: *mut ::core::ffi::c_void) -> super::super::Foundation::LSTATUS;
30 #[cfg(feature = "Win32_Foundation")]
31 pub fn RegCreateKeyW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
32 #[cfg(feature = "Win32_Foundation")]
33 pub fn RegDeleteKeyA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR) -> super::super::Foundation::LSTATUS;
34 #[cfg(feature = "Win32_Foundation")]
35 pub fn RegDeleteKeyExA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, samdesired: u32, reserved: u32) -> super::super::Foundation::LSTATUS;
36 #[cfg(feature = "Win32_Foundation")]
37 pub fn RegDeleteKeyExW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, samdesired: u32, reserved: u32) -> super::super::Foundation::LSTATUS;
38 #[cfg(feature = "Win32_Foundation")]
39 pub fn RegDeleteKeyTransactedA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, samdesired: u32, reserved: u32, htransaction: super::super::Foundation::HANDLE, pextendedparameter: *mut ::core::ffi::c_void) -> super::super::Foundation::LSTATUS;
40 #[cfg(feature = "Win32_Foundation")]
41 pub fn RegDeleteKeyTransactedW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, samdesired: u32, reserved: u32, htransaction: super::super::Foundation::HANDLE, pextendedparameter: *mut ::core::ffi::c_void) -> super::super::Foundation::LSTATUS;
42 #[cfg(feature = "Win32_Foundation")]
43 pub fn RegDeleteKeyValueA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, lpvaluename: super::super::Foundation::PSTR) -> super::super::Foundation::LSTATUS;
44 #[cfg(feature = "Win32_Foundation")]
45 pub fn RegDeleteKeyValueW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, lpvaluename: super::super::Foundation::PWSTR) -> super::super::Foundation::LSTATUS;
46 #[cfg(feature = "Win32_Foundation")]
47 pub fn RegDeleteKeyW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR) -> super::super::Foundation::LSTATUS;
48 #[cfg(feature = "Win32_Foundation")]
49 pub fn RegDeleteTreeA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR) -> super::super::Foundation::LSTATUS;
50 #[cfg(feature = "Win32_Foundation")]
51 pub fn RegDeleteTreeW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR) -> super::super::Foundation::LSTATUS;
52 #[cfg(feature = "Win32_Foundation")]
53 pub fn RegDeleteValueA(hkey: HKEY, lpvaluename: super::super::Foundation::PSTR) -> super::super::Foundation::LSTATUS;
54 #[cfg(feature = "Win32_Foundation")]
55 pub fn RegDeleteValueW(hkey: HKEY, lpvaluename: super::super::Foundation::PWSTR) -> super::super::Foundation::LSTATUS;
56 #[cfg(feature = "Win32_Foundation")]
57 pub fn RegDisablePredefinedCache() -> super::super::Foundation::LSTATUS;
58 #[cfg(feature = "Win32_Foundation")]
59 pub fn RegDisablePredefinedCacheEx() -> super::super::Foundation::LSTATUS;
60 pub fn RegDisableReflectionKey(hbase: HKEY) -> i32;
61 pub fn RegEnableReflectionKey(hbase: HKEY) -> i32;
62 #[cfg(feature = "Win32_Foundation")]
63 pub fn RegEnumKeyA(hkey: HKEY, dwindex: u32, lpname: super::super::Foundation::PSTR, cchname: u32) -> super::super::Foundation::LSTATUS;
64 #[cfg(feature = "Win32_Foundation")]
65 pub fn RegEnumKeyExA(hkey: HKEY, dwindex: u32, lpname: super::super::Foundation::PSTR, lpcchname: *mut u32, lpreserved: *mut u32, lpclass: super::super::Foundation::PSTR, lpcchclass: *mut u32, lpftlastwritetime: *mut super::super::Foundation::FILETIME) -> super::super::Foundation::LSTATUS;
66 #[cfg(feature = "Win32_Foundation")]
67 pub fn RegEnumKeyExW(hkey: HKEY, dwindex: u32, lpname: super::super::Foundation::PWSTR, lpcchname: *mut u32, lpreserved: *mut u32, lpclass: super::super::Foundation::PWSTR, lpcchclass: *mut u32, lpftlastwritetime: *mut super::super::Foundation::FILETIME) -> super::super::Foundation::LSTATUS;
68 #[cfg(feature = "Win32_Foundation")]
69 pub fn RegEnumKeyW(hkey: HKEY, dwindex: u32, lpname: super::super::Foundation::PWSTR, cchname: u32) -> super::super::Foundation::LSTATUS;
70 #[cfg(feature = "Win32_Foundation")]
71 pub fn RegEnumValueA(hkey: HKEY, dwindex: u32, lpvaluename: super::super::Foundation::PSTR, lpcchvaluename: *mut u32, lpreserved: *mut u32, lptype: *mut u32, lpdata: *mut u8, lpcbdata: *mut u32) -> super::super::Foundation::LSTATUS;
72 #[cfg(feature = "Win32_Foundation")]
73 pub fn RegEnumValueW(hkey: HKEY, dwindex: u32, lpvaluename: super::super::Foundation::PWSTR, lpcchvaluename: *mut u32, lpreserved: *mut u32, lptype: *mut u32, lpdata: *mut u8, lpcbdata: *mut u32) -> super::super::Foundation::LSTATUS;
74 #[cfg(feature = "Win32_Foundation")]
75 pub fn RegFlushKey(hkey: HKEY) -> super::super::Foundation::LSTATUS;
76 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
77 pub fn RegGetKeySecurity(hkey: HKEY, securityinformation: u32, psecuritydescriptor: *mut super::super::Security::SECURITY_DESCRIPTOR, lpcbsecuritydescriptor: *mut u32) -> super::super::Foundation::LSTATUS;
78 #[cfg(feature = "Win32_Foundation")]
79 pub fn RegGetValueA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, lpvalue: super::super::Foundation::PSTR, dwflags: RRF_RT, pdwtype: *mut u32, pvdata: *mut ::core::ffi::c_void, pcbdata: *mut u32) -> super::super::Foundation::LSTATUS;
80 #[cfg(feature = "Win32_Foundation")]
81 pub fn RegGetValueW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, lpvalue: super::super::Foundation::PWSTR, dwflags: RRF_RT, pdwtype: *mut u32, pvdata: *mut ::core::ffi::c_void, pcbdata: *mut u32) -> super::super::Foundation::LSTATUS;
82 #[cfg(feature = "Win32_Foundation")]
83 pub fn RegLoadAppKeyA(lpfile: super::super::Foundation::PSTR, phkresult: *mut HKEY, samdesired: u32, dwoptions: u32, reserved: u32) -> super::super::Foundation::LSTATUS;
84 #[cfg(feature = "Win32_Foundation")]
85 pub fn RegLoadAppKeyW(lpfile: super::super::Foundation::PWSTR, phkresult: *mut HKEY, samdesired: u32, dwoptions: u32, reserved: u32) -> super::super::Foundation::LSTATUS;
86 #[cfg(feature = "Win32_Foundation")]
87 pub fn RegLoadKeyA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, lpfile: super::super::Foundation::PSTR) -> super::super::Foundation::LSTATUS;
88 #[cfg(feature = "Win32_Foundation")]
89 pub fn RegLoadKeyW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, lpfile: super::super::Foundation::PWSTR) -> super::super::Foundation::LSTATUS;
90 #[cfg(feature = "Win32_Foundation")]
91 pub fn RegLoadMUIStringA(hkey: HKEY, pszvalue: super::super::Foundation::PSTR, pszoutbuf: super::super::Foundation::PSTR, cboutbuf: u32, pcbdata: *mut u32, flags: u32, pszdirectory: super::super::Foundation::PSTR) -> super::super::Foundation::LSTATUS;
92 #[cfg(feature = "Win32_Foundation")]
93 pub fn RegLoadMUIStringW(hkey: HKEY, pszvalue: super::super::Foundation::PWSTR, pszoutbuf: super::super::Foundation::PWSTR, cboutbuf: u32, pcbdata: *mut u32, flags: u32, pszdirectory: super::super::Foundation::PWSTR) -> super::super::Foundation::LSTATUS;
94 #[cfg(feature = "Win32_Foundation")]
95 pub fn RegNotifyChangeKeyValue(hkey: HKEY, bwatchsubtree: super::super::Foundation::BOOL, dwnotifyfilter: REG_NOTIFY_FILTER, hevent: super::super::Foundation::HANDLE, fasynchronous: super::super::Foundation::BOOL) -> super::super::Foundation::LSTATUS;
96 #[cfg(feature = "Win32_Foundation")]
97 pub fn RegOpenCurrentUser(samdesired: u32, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
98 #[cfg(feature = "Win32_Foundation")]
99 pub fn RegOpenKeyA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
100 #[cfg(feature = "Win32_Foundation")]
101 pub fn RegOpenKeyExA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, uloptions: u32, samdesired: REG_SAM_FLAGS, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
102 #[cfg(feature = "Win32_Foundation")]
103 pub fn RegOpenKeyExW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, uloptions: u32, samdesired: REG_SAM_FLAGS, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
104 #[cfg(feature = "Win32_Foundation")]
105 pub fn RegOpenKeyTransactedA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, uloptions: u32, samdesired: REG_SAM_FLAGS, phkresult: *mut HKEY, htransaction: super::super::Foundation::HANDLE, pextendedparemeter: *mut ::core::ffi::c_void) -> super::super::Foundation::LSTATUS;
106 #[cfg(feature = "Win32_Foundation")]
107 pub fn RegOpenKeyTransactedW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, uloptions: u32, samdesired: REG_SAM_FLAGS, phkresult: *mut HKEY, htransaction: super::super::Foundation::HANDLE, pextendedparemeter: *mut ::core::ffi::c_void) -> super::super::Foundation::LSTATUS;
108 #[cfg(feature = "Win32_Foundation")]
109 pub fn RegOpenKeyW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
110 #[cfg(feature = "Win32_Foundation")]
111 pub fn RegOpenUserClassesRoot(htoken: super::super::Foundation::HANDLE, dwoptions: u32, samdesired: u32, phkresult: *mut HKEY) -> super::super::Foundation::LSTATUS;
112 #[cfg(feature = "Win32_Foundation")]
113 pub fn RegOverridePredefKey(hkey: HKEY, hnewhkey: HKEY) -> super::super::Foundation::LSTATUS;
114 #[cfg(feature = "Win32_Foundation")]
115 pub fn RegQueryInfoKeyA(hkey: HKEY, lpclass: super::super::Foundation::PSTR, lpcchclass: *mut u32, lpreserved: *mut u32, lpcsubkeys: *mut u32, lpcbmaxsubkeylen: *mut u32, lpcbmaxclasslen: *mut u32, lpcvalues: *mut u32, lpcbmaxvaluenamelen: *mut u32, lpcbmaxvaluelen: *mut u32, lpcbsecuritydescriptor: *mut u32, lpftlastwritetime: *mut super::super::Foundation::FILETIME) -> super::super::Foundation::LSTATUS;
116 #[cfg(feature = "Win32_Foundation")]
117 pub fn RegQueryInfoKeyW(hkey: HKEY, lpclass: super::super::Foundation::PWSTR, lpcchclass: *mut u32, lpreserved: *mut u32, lpcsubkeys: *mut u32, lpcbmaxsubkeylen: *mut u32, lpcbmaxclasslen: *mut u32, lpcvalues: *mut u32, lpcbmaxvaluenamelen: *mut u32, lpcbmaxvaluelen: *mut u32, lpcbsecuritydescriptor: *mut u32, lpftlastwritetime: *mut super::super::Foundation::FILETIME) -> super::super::Foundation::LSTATUS;
118 #[cfg(feature = "Win32_Foundation")]
119 pub fn RegQueryMultipleValuesA(hkey: HKEY, val_list: *mut VALENTA, num_vals: u32, lpvaluebuf: super::super::Foundation::PSTR, ldwtotsize: *mut u32) -> super::super::Foundation::LSTATUS;
120 #[cfg(feature = "Win32_Foundation")]
121 pub fn RegQueryMultipleValuesW(hkey: HKEY, val_list: *mut VALENTW, num_vals: u32, lpvaluebuf: super::super::Foundation::PWSTR, ldwtotsize: *mut u32) -> super::super::Foundation::LSTATUS;
122 #[cfg(feature = "Win32_Foundation")]
123 pub fn RegQueryReflectionKey(hbase: HKEY, bisreflectiondisabled: *mut super::super::Foundation::BOOL) -> i32;
124 #[cfg(feature = "Win32_Foundation")]
125 pub fn RegQueryValueA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, lpdata: super::super::Foundation::PSTR, lpcbdata: *mut i32) -> super::super::Foundation::LSTATUS;
126 #[cfg(feature = "Win32_Foundation")]
127 pub fn RegQueryValueExA(hkey: HKEY, lpvaluename: super::super::Foundation::PSTR, lpreserved: *mut u32, lptype: *mut REG_VALUE_TYPE, lpdata: *mut u8, lpcbdata: *mut u32) -> super::super::Foundation::LSTATUS;
128 #[cfg(feature = "Win32_Foundation")]
129 pub fn RegQueryValueExW(hkey: HKEY, lpvaluename: super::super::Foundation::PWSTR, lpreserved: *mut u32, lptype: *mut REG_VALUE_TYPE, lpdata: *mut u8, lpcbdata: *mut u32) -> super::super::Foundation::LSTATUS;
130 #[cfg(feature = "Win32_Foundation")]
131 pub fn RegQueryValueW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, lpdata: super::super::Foundation::PWSTR, lpcbdata: *mut i32) -> super::super::Foundation::LSTATUS;
132 #[cfg(feature = "Win32_Foundation")]
133 pub fn RegRenameKey(hkey: HKEY, lpsubkeyname: super::super::Foundation::PWSTR, lpnewkeyname: super::super::Foundation::PWSTR) -> super::super::Foundation::LSTATUS;
134 #[cfg(feature = "Win32_Foundation")]
135 pub fn RegReplaceKeyA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, lpnewfile: super::super::Foundation::PSTR, lpoldfile: super::super::Foundation::PSTR) -> super::super::Foundation::LSTATUS;
136 #[cfg(feature = "Win32_Foundation")]
137 pub fn RegReplaceKeyW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, lpnewfile: super::super::Foundation::PWSTR, lpoldfile: super::super::Foundation::PWSTR) -> super::super::Foundation::LSTATUS;
138 #[cfg(feature = "Win32_Foundation")]
139 pub fn RegRestoreKeyA(hkey: HKEY, lpfile: super::super::Foundation::PSTR, dwflags: REG_RESTORE_KEY_FLAGS) -> super::super::Foundation::LSTATUS;
140 #[cfg(feature = "Win32_Foundation")]
141 pub fn RegRestoreKeyW(hkey: HKEY, lpfile: super::super::Foundation::PWSTR, dwflags: REG_RESTORE_KEY_FLAGS) -> super::super::Foundation::LSTATUS;
142 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
143 pub fn RegSaveKeyA(hkey: HKEY, lpfile: super::super::Foundation::PSTR, lpsecurityattributes: *const super::super::Security::SECURITY_ATTRIBUTES) -> super::super::Foundation::LSTATUS;
144 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
145 pub fn RegSaveKeyExA(hkey: HKEY, lpfile: super::super::Foundation::PSTR, lpsecurityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, flags: REG_SAVE_FORMAT) -> super::super::Foundation::LSTATUS;
146 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
147 pub fn RegSaveKeyExW(hkey: HKEY, lpfile: super::super::Foundation::PWSTR, lpsecurityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, flags: REG_SAVE_FORMAT) -> super::super::Foundation::LSTATUS;
148 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
149 pub fn RegSaveKeyW(hkey: HKEY, lpfile: super::super::Foundation::PWSTR, lpsecurityattributes: *const super::super::Security::SECURITY_ATTRIBUTES) -> super::super::Foundation::LSTATUS;
150 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
151 pub fn RegSetKeySecurity(hkey: HKEY, securityinformation: u32, psecuritydescriptor: *const super::super::Security::SECURITY_DESCRIPTOR) -> super::super::Foundation::LSTATUS;
152 #[cfg(feature = "Win32_Foundation")]
153 pub fn RegSetKeyValueA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, lpvaluename: super::super::Foundation::PSTR, dwtype: u32, lpdata: *const ::core::ffi::c_void, cbdata: u32) -> super::super::Foundation::LSTATUS;
154 #[cfg(feature = "Win32_Foundation")]
155 pub fn RegSetKeyValueW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, lpvaluename: super::super::Foundation::PWSTR, dwtype: u32, lpdata: *const ::core::ffi::c_void, cbdata: u32) -> super::super::Foundation::LSTATUS;
156 #[cfg(feature = "Win32_Foundation")]
157 pub fn RegSetValueA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR, dwtype: REG_VALUE_TYPE, lpdata: super::super::Foundation::PSTR, cbdata: u32) -> super::super::Foundation::LSTATUS;
158 #[cfg(feature = "Win32_Foundation")]
159 pub fn RegSetValueExA(hkey: HKEY, lpvaluename: super::super::Foundation::PSTR, reserved: u32, dwtype: REG_VALUE_TYPE, lpdata: *const u8, cbdata: u32) -> super::super::Foundation::LSTATUS;
160 #[cfg(feature = "Win32_Foundation")]
161 pub fn RegSetValueExW(hkey: HKEY, lpvaluename: super::super::Foundation::PWSTR, reserved: u32, dwtype: REG_VALUE_TYPE, lpdata: *const u8, cbdata: u32) -> super::super::Foundation::LSTATUS;
162 #[cfg(feature = "Win32_Foundation")]
163 pub fn RegSetValueW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR, dwtype: REG_VALUE_TYPE, lpdata: super::super::Foundation::PWSTR, cbdata: u32) -> super::super::Foundation::LSTATUS;
164 #[cfg(feature = "Win32_Foundation")]
165 pub fn RegUnLoadKeyA(hkey: HKEY, lpsubkey: super::super::Foundation::PSTR) -> super::super::Foundation::LSTATUS;
166 #[cfg(feature = "Win32_Foundation")]
167 pub fn RegUnLoadKeyW(hkey: HKEY, lpsubkey: super::super::Foundation::PWSTR) -> super::super::Foundation::LSTATUS;
168}
169pub const AGP_FLAG_NO_1X_RATE: i32 = 1i32;
170pub const AGP_FLAG_NO_2X_RATE: i32 = 2i32;
171pub const AGP_FLAG_NO_4X_RATE: i32 = 4i32;
172pub const AGP_FLAG_NO_8X_RATE: i32 = 8i32;
173pub const AGP_FLAG_NO_FW_ENABLE: i32 = 512i32;
174pub const AGP_FLAG_NO_SBA_ENABLE: i32 = 256i32;
175pub const AGP_FLAG_REVERSE_INITIALIZATION: i32 = 128i32;
176pub const AGP_FLAG_SPECIAL_RESERVE: i32 = 1015808i32;
177pub const AGP_FLAG_SPECIAL_TARGET: i32 = 1048575i32;
178pub const APMMENUSUSPEND_DISABLED: u32 = 0u32;
179pub const APMMENUSUSPEND_ENABLED: u32 = 1u32;
180pub const APMMENUSUSPEND_NOCHANGE: u32 = 128u32;
181pub const APMMENUSUSPEND_UNDOCKED: u32 = 2u32;
182pub const APMTIMEOUT_DISABLED: u32 = 0u32;
183pub const BIF_RAWDEVICENEEDSDRIVER: u32 = 2u32;
184pub const BIF_SHOWSIMILARDRIVERS: u32 = 1u32;
185pub const CONFIGFLAG_BOOT_DEVICE: u32 = 262144u32;
186pub const CONFIGFLAG_CANTSTOPACHILD: u32 = 128u32;
187pub const CONFIGFLAG_DISABLED: u32 = 1u32;
188pub const CONFIGFLAG_FAILEDINSTALL: u32 = 64u32;
189pub const CONFIGFLAG_FINISHINSTALL_ACTION: u32 = 131072u32;
190pub const CONFIGFLAG_FINISHINSTALL_UI: u32 = 65536u32;
191pub const CONFIGFLAG_FINISH_INSTALL: u32 = 1024u32;
192pub const CONFIGFLAG_IGNORE_BOOT_LC: u32 = 8u32;
193pub const CONFIGFLAG_MANUAL_INSTALL: u32 = 4u32;
194pub const CONFIGFLAG_NEEDS_CLASS_CONFIG: u32 = 524288u32;
195pub const CONFIGFLAG_NEEDS_FORCED_CONFIG: u32 = 2048u32;
196pub const CONFIGFLAG_NETBOOT_CARD: u32 = 4096u32;
197pub const CONFIGFLAG_NET_BOOT: u32 = 16u32;
198pub const CONFIGFLAG_NOREMOVEEXIT: u32 = 512u32;
199pub const CONFIGFLAG_OKREMOVEROM: u32 = 256u32;
200pub const CONFIGFLAG_PARTIAL_LOG_CONF: u32 = 8192u32;
201pub const CONFIGFLAG_REINSTALL: u32 = 32u32;
202pub const CONFIGFLAG_REMOVED: u32 = 2u32;
203pub const CONFIGFLAG_SUPPRESS_SURPRISE: u32 = 16384u32;
204pub const CONFIGFLAG_VERIFY_HARDWARE: u32 = 32768u32;
205pub const CSCONFIGFLAG_BITS: u32 = 7u32;
206pub const CSCONFIGFLAG_DISABLED: u32 = 1u32;
207pub const CSCONFIGFLAG_DO_NOT_CREATE: u32 = 2u32;
208pub const CSCONFIGFLAG_DO_NOT_START: u32 = 4u32;
209pub const DMSTATEFLAG_APPLYTOALL: u32 = 1u32;
210pub const DOSOPTF_ALWAYSUSE: i32 = 4i32;
211pub const DOSOPTF_DEFAULT: i32 = 1i32;
212pub const DOSOPTF_INDOSSTART: i32 = 64i32;
213pub const DOSOPTF_MULTIPLE: i32 = 128i32;
214pub const DOSOPTF_NEEDSETUP: i32 = 32i32;
215pub const DOSOPTF_PROVIDESUMB: i32 = 16i32;
216pub const DOSOPTF_SUPPORTED: i32 = 2i32;
217pub const DOSOPTF_USESPMODE: i32 = 8i32;
218pub const DOSOPTGF_DEFCLEAN: i32 = 1i32;
219pub const DRIVERSIGN_BLOCKING: u32 = 2u32;
220pub const DRIVERSIGN_NONE: u32 = 0u32;
221pub const DRIVERSIGN_WARNING: u32 = 1u32;
222#[repr(C)]
223pub struct DSKTLSYSTEMTIME {
224 pub wYear: u16,
225 pub wMonth: u16,
226 pub wDayOfWeek: u16,
227 pub wDay: u16,
228 pub wHour: u16,
229 pub wMinute: u16,
230 pub wSecond: u16,
231 pub wMilliseconds: u16,
232 pub wResult: u16,
233}
234impl ::core::marker::Copy for DSKTLSYSTEMTIME {}
235impl ::core::clone::Clone for DSKTLSYSTEMTIME {
236 fn clone(&self) -> Self {
237 *self
238 }
239}
240pub const DTRESULTFIX: u32 = 1u32;
241pub const DTRESULTOK: u32 = 0u32;
242pub const DTRESULTPART: u32 = 3u32;
243pub const DTRESULTPROB: u32 = 2u32;
244pub const EISAFLAG_NO_IO_MERGE: u32 = 1u32;
245pub const EISAFLAG_SLOT_IO_FIRST: u32 = 2u32;
246pub const EISA_NO_MAX_FUNCTION: u32 = 255u32;
247pub type HKEY = isize;
248pub const HKEY_CLASSES_ROOT: HKEY = -2147483648i32 as _;
249pub const HKEY_CURRENT_CONFIG: HKEY = -2147483643i32 as _;
250pub const HKEY_CURRENT_USER: HKEY = -2147483647i32 as _;
251pub const HKEY_CURRENT_USER_LOCAL_SETTINGS: HKEY = -2147483641i32 as _;
252pub const HKEY_DYN_DATA: HKEY = -2147483642i32 as _;
253pub const HKEY_LOCAL_MACHINE: HKEY = -2147483646i32 as _;
254pub const HKEY_PERFORMANCE_DATA: HKEY = -2147483644i32 as _;
255pub const HKEY_PERFORMANCE_NLSTEXT: HKEY = -2147483552i32 as _;
256pub const HKEY_PERFORMANCE_TEXT: HKEY = -2147483568i32 as _;
257pub const HKEY_USERS: HKEY = -2147483645i32 as _;
258pub const IT_COMPACT: u32 = 0u32;
259pub const IT_CUSTOM: u32 = 3u32;
260pub const IT_PORTABLE: u32 = 2u32;
261pub const IT_TYPICAL: u32 = 1u32;
262pub const LASTGOOD_OPERATION: u32 = 255u32;
263pub const LASTGOOD_OPERATION_DELETE: u32 = 1u32;
264pub const LASTGOOD_OPERATION_NOPOSTPROC: u32 = 0u32;
265pub const MF_FLAGS_CREATE_BUT_NO_SHOW_DISABLED: u32 = 8u32;
266pub const MF_FLAGS_EVEN_IF_NO_RESOURCE: u32 = 1u32;
267pub const MF_FLAGS_FILL_IN_UNKNOWN_RESOURCE: u32 = 4u32;
268pub const MF_FLAGS_NO_CREATE_IF_NO_RESOURCE: u32 = 2u32;
269pub const NUM_EISA_RANGES: u32 = 4u32;
270pub const NUM_RESOURCE_MAP: u32 = 256u32;
271pub const PCIC_DEFAULT_IRQMASK: u32 = 20152u32;
272pub const PCIC_DEFAULT_NUMSOCKETS: u32 = 0u32;
273pub const PCI_OPTIONS_USE_BIOS: i32 = 1i32;
274pub const PCI_OPTIONS_USE_IRQ_STEERING: i32 = 2i32;
275pub const PCMCIA_DEF_MEMBEGIN: u32 = 786432u32;
276pub const PCMCIA_DEF_MEMEND: u32 = 16777215u32;
277pub const PCMCIA_DEF_MEMLEN: u32 = 4096u32;
278pub const PCMCIA_DEF_MIN_REGION: u32 = 65536u32;
279pub const PCMCIA_OPT_AUTOMEM: i32 = 4i32;
280pub const PCMCIA_OPT_HAVE_SOCKET: i32 = 1i32;
281pub const PCMCIA_OPT_NO_APMREMOVE: i32 = 32i32;
282pub const PCMCIA_OPT_NO_AUDIO: i32 = 16i32;
283pub const PCMCIA_OPT_NO_SOUND: i32 = 8i32;
284pub const PIR_OPTION_DEFAULT: u32 = 15u32;
285pub const PIR_OPTION_ENABLED: u32 = 1u32;
286pub const PIR_OPTION_MSSPEC: u32 = 4u32;
287pub const PIR_OPTION_REALMODE: u32 = 8u32;
288pub const PIR_OPTION_REGISTRY: u32 = 2u32;
289pub const PIR_STATUS_DISABLED: u32 = 2u32;
290pub const PIR_STATUS_ENABLED: u32 = 1u32;
291pub const PIR_STATUS_ERROR: u32 = 0u32;
292pub const PIR_STATUS_MAX: u32 = 3u32;
293pub const PIR_STATUS_MINIPORT_COMPATIBLE: u32 = 1u32;
294pub const PIR_STATUS_MINIPORT_ERROR: u32 = 4u32;
295pub const PIR_STATUS_MINIPORT_INVALID: u32 = 7u32;
296pub const PIR_STATUS_MINIPORT_MAX: u32 = 8u32;
297pub const PIR_STATUS_MINIPORT_NOKEY: u32 = 5u32;
298pub const PIR_STATUS_MINIPORT_NONE: u32 = 3u32;
299pub const PIR_STATUS_MINIPORT_NORMAL: u32 = 0u32;
300pub const PIR_STATUS_MINIPORT_OVERRIDE: u32 = 2u32;
301pub const PIR_STATUS_MINIPORT_SUCCESS: u32 = 6u32;
302pub const PIR_STATUS_TABLE_BAD: u32 = 5u32;
303pub const PIR_STATUS_TABLE_ERROR: u32 = 4u32;
304pub const PIR_STATUS_TABLE_MAX: u32 = 7u32;
305pub const PIR_STATUS_TABLE_MSSPEC: u32 = 1u32;
306pub const PIR_STATUS_TABLE_NONE: u32 = 3u32;
307pub const PIR_STATUS_TABLE_REALMODE: u32 = 2u32;
308pub const PIR_STATUS_TABLE_REGISTRY: u32 = 0u32;
309pub const PIR_STATUS_TABLE_SUCCESS: u32 = 6u32;
310pub type PQUERYHANDLER = unsafe extern "system" fn(keycontext: *mut ::core::ffi::c_void, val_list: *mut val_context, num_vals: u32, outputbuffer: *mut ::core::ffi::c_void, total_outlen: *mut u32, input_blen: u32) -> u32;
311pub const PROVIDER_KEEPS_VALUE_LENGTH: u32 = 1u32;
312pub const REGDF_CONFLICTDMA: u32 = 524288u32;
313pub const REGDF_CONFLICTIO: u32 = 65536u32;
314pub const REGDF_CONFLICTIRQ: u32 = 262144u32;
315pub const REGDF_CONFLICTMEM: u32 = 131072u32;
316pub const REGDF_GENFORCEDCONFIG: u32 = 32u32;
317pub const REGDF_MAPIRQ2TO9: u32 = 1048576u32;
318pub const REGDF_NEEDFULLCONFIG: u32 = 16u32;
319pub const REGDF_NODETCONFIG: u32 = 32768u32;
320pub const REGDF_NOTDETDMA: u32 = 8u32;
321pub const REGDF_NOTDETIO: u32 = 1u32;
322pub const REGDF_NOTDETIRQ: u32 = 4u32;
323pub const REGDF_NOTDETMEM: u32 = 2u32;
324pub const REGDF_NOTVERIFIED: u32 = 2147483648u32;
325pub const REGSTR_MAX_VALUE_LENGTH: u32 = 256u32;
326pub const REGSTR_VAL_MAX_HCID_LEN: u32 = 1024u32;
327pub type REG_CREATE_KEY_DISPOSITION = u32;
328pub const REG_CREATED_NEW_KEY: REG_CREATE_KEY_DISPOSITION = 1u32;
329pub const REG_OPENED_EXISTING_KEY: REG_CREATE_KEY_DISPOSITION = 2u32;
330pub const REG_MUI_STRING_TRUNCATE: u32 = 1u32;
331pub type REG_NOTIFY_FILTER = u32;
332pub const REG_NOTIFY_CHANGE_NAME: REG_NOTIFY_FILTER = 1u32;
333pub const REG_NOTIFY_CHANGE_ATTRIBUTES: REG_NOTIFY_FILTER = 2u32;
334pub const REG_NOTIFY_CHANGE_LAST_SET: REG_NOTIFY_FILTER = 4u32;
335pub const REG_NOTIFY_CHANGE_SECURITY: REG_NOTIFY_FILTER = 8u32;
336pub const REG_NOTIFY_THREAD_AGNOSTIC: REG_NOTIFY_FILTER = 268435456u32;
337pub type REG_OPEN_CREATE_OPTIONS = u32;
338pub const REG_OPTION_RESERVED: REG_OPEN_CREATE_OPTIONS = 0u32;
339pub const REG_OPTION_NON_VOLATILE: REG_OPEN_CREATE_OPTIONS = 0u32;
340pub const REG_OPTION_VOLATILE: REG_OPEN_CREATE_OPTIONS = 1u32;
341pub const REG_OPTION_CREATE_LINK: REG_OPEN_CREATE_OPTIONS = 2u32;
342pub const REG_OPTION_BACKUP_RESTORE: REG_OPEN_CREATE_OPTIONS = 4u32;
343pub const REG_OPTION_OPEN_LINK: REG_OPEN_CREATE_OPTIONS = 8u32;
344pub const REG_OPTION_DONT_VIRTUALIZE: REG_OPEN_CREATE_OPTIONS = 16u32;
345pub const REG_PROCESS_APPKEY: u32 = 1u32;
346pub type REG_RESTORE_KEY_FLAGS = i32;
347pub const REG_FORCE_RESTORE: REG_RESTORE_KEY_FLAGS = 8i32;
348pub const REG_WHOLE_HIVE_VOLATILE: REG_RESTORE_KEY_FLAGS = 1i32;
349pub type REG_SAM_FLAGS = u32;
350pub const KEY_QUERY_VALUE: REG_SAM_FLAGS = 1u32;
351pub const KEY_SET_VALUE: REG_SAM_FLAGS = 2u32;
352pub const KEY_CREATE_SUB_KEY: REG_SAM_FLAGS = 4u32;
353pub const KEY_ENUMERATE_SUB_KEYS: REG_SAM_FLAGS = 8u32;
354pub const KEY_NOTIFY: REG_SAM_FLAGS = 16u32;
355pub const KEY_CREATE_LINK: REG_SAM_FLAGS = 32u32;
356pub const KEY_WOW64_32KEY: REG_SAM_FLAGS = 512u32;
357pub const KEY_WOW64_64KEY: REG_SAM_FLAGS = 256u32;
358pub const KEY_WOW64_RES: REG_SAM_FLAGS = 768u32;
359pub const KEY_READ: REG_SAM_FLAGS = 131097u32;
360pub const KEY_WRITE: REG_SAM_FLAGS = 131078u32;
361pub const KEY_EXECUTE: REG_SAM_FLAGS = 131097u32;
362pub const KEY_ALL_ACCESS: REG_SAM_FLAGS = 983103u32;
363pub type REG_SAVE_FORMAT = u32;
364pub const REG_STANDARD_FORMAT: REG_SAVE_FORMAT = 1u32;
365pub const REG_LATEST_FORMAT: REG_SAVE_FORMAT = 2u32;
366pub const REG_NO_COMPRESSION: REG_SAVE_FORMAT = 4u32;
367pub const REG_SECURE_CONNECTION: u32 = 1u32;
368pub const REG_USE_CURRENT_SECURITY_CONTEXT: u32 = 2u32;
369pub type REG_VALUE_TYPE = u32;
370pub const REG_NONE: REG_VALUE_TYPE = 0u32;
371pub const REG_SZ: REG_VALUE_TYPE = 1u32;
372pub const REG_EXPAND_SZ: REG_VALUE_TYPE = 2u32;
373pub const REG_BINARY: REG_VALUE_TYPE = 3u32;
374pub const REG_DWORD: REG_VALUE_TYPE = 4u32;
375pub const REG_DWORD_LITTLE_ENDIAN: REG_VALUE_TYPE = 4u32;
376pub const REG_DWORD_BIG_ENDIAN: REG_VALUE_TYPE = 5u32;
377pub const REG_LINK: REG_VALUE_TYPE = 6u32;
378pub const REG_MULTI_SZ: REG_VALUE_TYPE = 7u32;
379pub const REG_RESOURCE_LIST: REG_VALUE_TYPE = 8u32;
380pub const REG_FULL_RESOURCE_DESCRIPTOR: REG_VALUE_TYPE = 9u32;
381pub const REG_RESOURCE_REQUIREMENTS_LIST: REG_VALUE_TYPE = 10u32;
382pub const REG_QWORD: REG_VALUE_TYPE = 11u32;
383pub const REG_QWORD_LITTLE_ENDIAN: REG_VALUE_TYPE = 11u32;
384pub const RRF_NOEXPAND: u32 = 268435456u32;
385pub type RRF_RT = u32;
386pub const RRF_RT_ANY: RRF_RT = 65535u32;
387pub const RRF_RT_DWORD: RRF_RT = 24u32;
388pub const RRF_RT_QWORD: RRF_RT = 72u32;
389pub const RRF_RT_REG_BINARY: RRF_RT = 8u32;
390pub const RRF_RT_REG_DWORD: RRF_RT = 16u32;
391pub const RRF_RT_REG_EXPAND_SZ: RRF_RT = 4u32;
392pub const RRF_RT_REG_MULTI_SZ: RRF_RT = 32u32;
393pub const RRF_RT_REG_NONE: RRF_RT = 1u32;
394pub const RRF_RT_REG_QWORD: RRF_RT = 64u32;
395pub const RRF_RT_REG_SZ: RRF_RT = 2u32;
396pub const RRF_SUBKEY_WOW6432KEY: u32 = 131072u32;
397pub const RRF_SUBKEY_WOW6464KEY: u32 = 65536u32;
398pub const RRF_WOW64_MASK: u32 = 196608u32;
399pub const RRF_ZEROONFAILURE: u32 = 536870912u32;
400pub const SUF_BATCHINF: i32 = 4i32;
401pub const SUF_CLEAN: i32 = 8i32;
402pub const SUF_EXPRESS: i32 = 2i32;
403pub const SUF_FIRSTTIME: i32 = 1i32;
404pub const SUF_INSETUP: i32 = 16i32;
405pub const SUF_NETHDBOOT: i32 = 64i32;
406pub const SUF_NETRPLBOOT: i32 = 128i32;
407pub const SUF_NETSETUP: i32 = 32i32;
408pub const SUF_SBSCOPYOK: i32 = 256i32;
409#[repr(C)]
410#[cfg(feature = "Win32_Foundation")]
411pub struct VALENTA {
412 pub ve_valuename: super::super::Foundation::PSTR,
413 pub ve_valuelen: u32,
414 pub ve_valueptr: usize,
415 pub ve_type: REG_VALUE_TYPE,
416}
417#[cfg(feature = "Win32_Foundation")]
418impl ::core::marker::Copy for VALENTA {}
419#[cfg(feature = "Win32_Foundation")]
420impl ::core::clone::Clone for VALENTA {
421 fn clone(&self) -> Self {
422 *self
423 }
424}
425#[repr(C)]
426#[cfg(feature = "Win32_Foundation")]
427pub struct VALENTW {
428 pub ve_valuename: super::super::Foundation::PWSTR,
429 pub ve_valuelen: u32,
430 pub ve_valueptr: usize,
431 pub ve_type: REG_VALUE_TYPE,
432}
433#[cfg(feature = "Win32_Foundation")]
434impl ::core::marker::Copy for VALENTW {}
435#[cfg(feature = "Win32_Foundation")]
436impl ::core::clone::Clone for VALENTW {
437 fn clone(&self) -> Self {
438 *self
439 }
440}
441pub const VPDF_DISABLEPWRMGMT: u32 = 1u32;
442pub const VPDF_DISABLEPWRSTATUSPOLL: u32 = 8u32;
443pub const VPDF_DISABLERINGRESUME: u32 = 16u32;
444pub const VPDF_FORCEAPM10MODE: u32 = 2u32;
445pub const VPDF_SHOWMULTIBATT: u32 = 32u32;
446pub const VPDF_SKIPINTELSLCHECK: u32 = 4u32;
447#[repr(C)]
448pub struct provider_info {
449 pub pi_R0_1val: PQUERYHANDLER,
450 pub pi_R0_allvals: PQUERYHANDLER,
451 pub pi_R3_1val: PQUERYHANDLER,
452 pub pi_R3_allvals: PQUERYHANDLER,
453 pub pi_flags: u32,
454 pub pi_key_context: *mut ::core::ffi::c_void,
455}
456impl ::core::marker::Copy for provider_info {}
457impl ::core::clone::Clone for provider_info {
458 fn clone(&self) -> Self {
459 *self
460 }
461}
462#[repr(C)]
463#[cfg(feature = "Win32_Foundation")]
464pub struct pvalueA {
465 pub pv_valuename: super::super::Foundation::PSTR,
466 pub pv_valuelen: i32,
467 pub pv_value_context: *mut ::core::ffi::c_void,
468 pub pv_type: u32,
469}
470#[cfg(feature = "Win32_Foundation")]
471impl ::core::marker::Copy for pvalueA {}
472#[cfg(feature = "Win32_Foundation")]
473impl ::core::clone::Clone for pvalueA {
474 fn clone(&self) -> Self {
475 *self
476 }
477}
478#[repr(C)]
479#[cfg(feature = "Win32_Foundation")]
480pub struct pvalueW {
481 pub pv_valuename: super::super::Foundation::PWSTR,
482 pub pv_valuelen: i32,
483 pub pv_value_context: *mut ::core::ffi::c_void,
484 pub pv_type: u32,
485}
486#[cfg(feature = "Win32_Foundation")]
487impl ::core::marker::Copy for pvalueW {}
488#[cfg(feature = "Win32_Foundation")]
489impl ::core::clone::Clone for pvalueW {
490 fn clone(&self) -> Self {
491 *self
492 }
493}
494#[repr(C)]
495pub struct val_context {
496 pub valuelen: i32,
497 pub value_context: *mut ::core::ffi::c_void,
498 pub val_buff_ptr: *mut ::core::ffi::c_void,
499}
500impl ::core::marker::Copy for val_context {}
501impl ::core::clone::Clone for val_context {
502 fn clone(&self) -> Self {
503 *self
504 }
505}