1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2 #[link(name = "windows")]
3 extern "system" {
PrjAllocateAlignedBuffer(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, size: usize) -> *mut ::core::ffi::c_void4     pub fn PrjAllocateAlignedBuffer(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, size: usize) -> *mut ::core::ffi::c_void;
PrjClearNegativePathCache(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, totalentrynumber: *mut u32) -> ::windows_sys::core::HRESULT5     pub fn PrjClearNegativePathCache(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, totalentrynumber: *mut u32) -> ::windows_sys::core::HRESULT;
PrjCompleteCommand(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, commandid: i32, completionresult: ::windows_sys::core::HRESULT, extendedparameters: *const PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS) -> ::windows_sys::core::HRESULT6     pub fn PrjCompleteCommand(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, commandid: i32, completionresult: ::windows_sys::core::HRESULT, extendedparameters: *const PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS) -> ::windows_sys::core::HRESULT;
7     #[cfg(feature = "Win32_Foundation")]
PrjDeleteFile(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: super::super::Foundation::PWSTR, updateflags: PRJ_UPDATE_TYPES, failurereason: *mut PRJ_UPDATE_FAILURE_CAUSES) -> ::windows_sys::core::HRESULT8     pub fn PrjDeleteFile(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: super::super::Foundation::PWSTR, updateflags: PRJ_UPDATE_TYPES, failurereason: *mut PRJ_UPDATE_FAILURE_CAUSES) -> ::windows_sys::core::HRESULT;
9     #[cfg(feature = "Win32_Foundation")]
PrjDoesNameContainWildCards(filename: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOLEAN10     pub fn PrjDoesNameContainWildCards(filename: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOLEAN;
11     #[cfg(feature = "Win32_Foundation")]
PrjFileNameCompare(filename1: super::super::Foundation::PWSTR, filename2: super::super::Foundation::PWSTR) -> i3212     pub fn PrjFileNameCompare(filename1: super::super::Foundation::PWSTR, filename2: super::super::Foundation::PWSTR) -> i32;
13     #[cfg(feature = "Win32_Foundation")]
PrjFileNameMatch(filenametocheck: super::super::Foundation::PWSTR, pattern: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOLEAN14     pub fn PrjFileNameMatch(filenametocheck: super::super::Foundation::PWSTR, pattern: super::super::Foundation::PWSTR) -> super::super::Foundation::BOOLEAN;
15     #[cfg(feature = "Win32_Foundation")]
PrjFillDirEntryBuffer(filename: super::super::Foundation::PWSTR, filebasicinfo: *const PRJ_FILE_BASIC_INFO, direntrybufferhandle: PRJ_DIR_ENTRY_BUFFER_HANDLE) -> ::windows_sys::core::HRESULT16     pub fn PrjFillDirEntryBuffer(filename: super::super::Foundation::PWSTR, filebasicinfo: *const PRJ_FILE_BASIC_INFO, direntrybufferhandle: PRJ_DIR_ENTRY_BUFFER_HANDLE) -> ::windows_sys::core::HRESULT;
17     #[cfg(feature = "Win32_Foundation")]
PrjFillDirEntryBuffer2(direntrybufferhandle: PRJ_DIR_ENTRY_BUFFER_HANDLE, filename: super::super::Foundation::PWSTR, filebasicinfo: *const PRJ_FILE_BASIC_INFO, extendedinfo: *const PRJ_EXTENDED_INFO) -> ::windows_sys::core::HRESULT18     pub fn PrjFillDirEntryBuffer2(direntrybufferhandle: PRJ_DIR_ENTRY_BUFFER_HANDLE, filename: super::super::Foundation::PWSTR, filebasicinfo: *const PRJ_FILE_BASIC_INFO, extendedinfo: *const PRJ_EXTENDED_INFO) -> ::windows_sys::core::HRESULT;
PrjFreeAlignedBuffer(buffer: *const ::core::ffi::c_void)19     pub fn PrjFreeAlignedBuffer(buffer: *const ::core::ffi::c_void);
20     #[cfg(feature = "Win32_Foundation")]
PrjGetOnDiskFileState(destinationfilename: super::super::Foundation::PWSTR, filestate: *mut PRJ_FILE_STATE) -> ::windows_sys::core::HRESULT21     pub fn PrjGetOnDiskFileState(destinationfilename: super::super::Foundation::PWSTR, filestate: *mut PRJ_FILE_STATE) -> ::windows_sys::core::HRESULT;
PrjGetVirtualizationInstanceInfo(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, virtualizationinstanceinfo: *mut PRJ_VIRTUALIZATION_INSTANCE_INFO) -> ::windows_sys::core::HRESULT22     pub fn PrjGetVirtualizationInstanceInfo(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, virtualizationinstanceinfo: *mut PRJ_VIRTUALIZATION_INSTANCE_INFO) -> ::windows_sys::core::HRESULT;
23     #[cfg(feature = "Win32_Foundation")]
PrjMarkDirectoryAsPlaceholder(rootpathname: super::super::Foundation::PWSTR, targetpathname: super::super::Foundation::PWSTR, versioninfo: *const PRJ_PLACEHOLDER_VERSION_INFO, virtualizationinstanceid: *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT24     pub fn PrjMarkDirectoryAsPlaceholder(rootpathname: super::super::Foundation::PWSTR, targetpathname: super::super::Foundation::PWSTR, versioninfo: *const PRJ_PLACEHOLDER_VERSION_INFO, virtualizationinstanceid: *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT;
25     #[cfg(feature = "Win32_Foundation")]
PrjStartVirtualizing(virtualizationrootpath: super::super::Foundation::PWSTR, callbacks: *const PRJ_CALLBACKS, instancecontext: *const ::core::ffi::c_void, options: *const PRJ_STARTVIRTUALIZING_OPTIONS, namespacevirtualizationcontext: *mut PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT) -> ::windows_sys::core::HRESULT26     pub fn PrjStartVirtualizing(virtualizationrootpath: super::super::Foundation::PWSTR, callbacks: *const PRJ_CALLBACKS, instancecontext: *const ::core::ffi::c_void, options: *const PRJ_STARTVIRTUALIZING_OPTIONS, namespacevirtualizationcontext: *mut PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT) -> ::windows_sys::core::HRESULT;
PrjStopVirtualizing(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT)27     pub fn PrjStopVirtualizing(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT);
28     #[cfg(feature = "Win32_Foundation")]
PrjUpdateFileIfNeeded(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: super::super::Foundation::PWSTR, placeholderinfo: *const PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32, updateflags: PRJ_UPDATE_TYPES, failurereason: *mut PRJ_UPDATE_FAILURE_CAUSES) -> ::windows_sys::core::HRESULT29     pub fn PrjUpdateFileIfNeeded(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: super::super::Foundation::PWSTR, placeholderinfo: *const PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32, updateflags: PRJ_UPDATE_TYPES, failurereason: *mut PRJ_UPDATE_FAILURE_CAUSES) -> ::windows_sys::core::HRESULT;
PrjWriteFileData(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, datastreamid: *const ::windows_sys::core::GUID, buffer: *const ::core::ffi::c_void, byteoffset: u64, length: u32) -> ::windows_sys::core::HRESULT30     pub fn PrjWriteFileData(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, datastreamid: *const ::windows_sys::core::GUID, buffer: *const ::core::ffi::c_void, byteoffset: u64, length: u32) -> ::windows_sys::core::HRESULT;
31     #[cfg(feature = "Win32_Foundation")]
PrjWritePlaceholderInfo(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: super::super::Foundation::PWSTR, placeholderinfo: *const PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32) -> ::windows_sys::core::HRESULT32     pub fn PrjWritePlaceholderInfo(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: super::super::Foundation::PWSTR, placeholderinfo: *const PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32) -> ::windows_sys::core::HRESULT;
33     #[cfg(feature = "Win32_Foundation")]
PrjWritePlaceholderInfo2(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: super::super::Foundation::PWSTR, placeholderinfo: *const PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32, extendedinfo: *const PRJ_EXTENDED_INFO) -> ::windows_sys::core::HRESULT34     pub fn PrjWritePlaceholderInfo2(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: super::super::Foundation::PWSTR, placeholderinfo: *const PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32, extendedinfo: *const PRJ_EXTENDED_INFO) -> ::windows_sys::core::HRESULT;
35 }
36 #[repr(C)]
37 #[cfg(feature = "Win32_Foundation")]
38 pub struct PRJ_CALLBACKS {
39     pub StartDirectoryEnumerationCallback: PRJ_START_DIRECTORY_ENUMERATION_CB,
40     pub EndDirectoryEnumerationCallback: PRJ_END_DIRECTORY_ENUMERATION_CB,
41     pub GetDirectoryEnumerationCallback: PRJ_GET_DIRECTORY_ENUMERATION_CB,
42     pub GetPlaceholderInfoCallback: PRJ_GET_PLACEHOLDER_INFO_CB,
43     pub GetFileDataCallback: PRJ_GET_FILE_DATA_CB,
44     pub QueryFileNameCallback: PRJ_QUERY_FILE_NAME_CB,
45     pub NotificationCallback: PRJ_NOTIFICATION_CB,
46     pub CancelCommandCallback: PRJ_CANCEL_COMMAND_CB,
47 }
48 #[cfg(feature = "Win32_Foundation")]
49 impl ::core::marker::Copy for PRJ_CALLBACKS {}
50 #[cfg(feature = "Win32_Foundation")]
51 impl ::core::clone::Clone for PRJ_CALLBACKS {
clone(&self) -> Self52     fn clone(&self) -> Self {
53         *self
54     }
55 }
56 #[repr(C)]
57 #[cfg(feature = "Win32_Foundation")]
58 pub struct PRJ_CALLBACK_DATA {
59     pub Size: u32,
60     pub Flags: PRJ_CALLBACK_DATA_FLAGS,
61     pub NamespaceVirtualizationContext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT,
62     pub CommandId: i32,
63     pub FileId: ::windows_sys::core::GUID,
64     pub DataStreamId: ::windows_sys::core::GUID,
65     pub FilePathName: super::super::Foundation::PWSTR,
66     pub VersionInfo: *mut PRJ_PLACEHOLDER_VERSION_INFO,
67     pub TriggeringProcessId: u32,
68     pub TriggeringProcessImageFileName: super::super::Foundation::PWSTR,
69     pub InstanceContext: *mut ::core::ffi::c_void,
70 }
71 #[cfg(feature = "Win32_Foundation")]
72 impl ::core::marker::Copy for PRJ_CALLBACK_DATA {}
73 #[cfg(feature = "Win32_Foundation")]
74 impl ::core::clone::Clone for PRJ_CALLBACK_DATA {
clone(&self) -> Self75     fn clone(&self) -> Self {
76         *self
77     }
78 }
79 pub type PRJ_CALLBACK_DATA_FLAGS = i32;
80 pub const PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN: PRJ_CALLBACK_DATA_FLAGS = 1i32;
81 pub const PRJ_CB_DATA_FLAG_ENUM_RETURN_SINGLE_ENTRY: PRJ_CALLBACK_DATA_FLAGS = 2i32;
82 #[cfg(feature = "Win32_Foundation")]
83 pub type PRJ_CANCEL_COMMAND_CB = unsafe extern "system" fn(callbackdata: *const PRJ_CALLBACK_DATA);
84 #[repr(C)]
85 pub struct PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS {
86     pub CommandType: PRJ_COMPLETE_COMMAND_TYPE,
87     pub Anonymous: PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0,
88 }
89 impl ::core::marker::Copy for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS {}
90 impl ::core::clone::Clone for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS {
clone(&self) -> Self91     fn clone(&self) -> Self {
92         *self
93     }
94 }
95 #[repr(C)]
96 pub union PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0 {
97     pub Notification: PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_1,
98     pub Enumeration: PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_0,
99 }
100 impl ::core::marker::Copy for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0 {}
101 impl ::core::clone::Clone for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0 {
clone(&self) -> Self102     fn clone(&self) -> Self {
103         *self
104     }
105 }
106 #[repr(C)]
107 pub struct PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_0 {
108     pub DirEntryBufferHandle: PRJ_DIR_ENTRY_BUFFER_HANDLE,
109 }
110 impl ::core::marker::Copy for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_0 {}
111 impl ::core::clone::Clone for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_0 {
clone(&self) -> Self112     fn clone(&self) -> Self {
113         *self
114     }
115 }
116 #[repr(C)]
117 pub struct PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_1 {
118     pub NotificationMask: PRJ_NOTIFY_TYPES,
119 }
120 impl ::core::marker::Copy for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_1 {}
121 impl ::core::clone::Clone for PRJ_COMPLETE_COMMAND_EXTENDED_PARAMETERS_0_1 {
clone(&self) -> Self122     fn clone(&self) -> Self {
123         *self
124     }
125 }
126 pub type PRJ_COMPLETE_COMMAND_TYPE = i32;
127 pub const PRJ_COMPLETE_COMMAND_TYPE_NOTIFICATION: PRJ_COMPLETE_COMMAND_TYPE = 1i32;
128 pub const PRJ_COMPLETE_COMMAND_TYPE_ENUMERATION: PRJ_COMPLETE_COMMAND_TYPE = 2i32;
129 pub type PRJ_DIR_ENTRY_BUFFER_HANDLE = isize;
130 #[cfg(feature = "Win32_Foundation")]
131 pub type PRJ_END_DIRECTORY_ENUMERATION_CB = unsafe extern "system" fn(callbackdata: *const PRJ_CALLBACK_DATA, enumerationid: *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT;
132 #[repr(C)]
133 #[cfg(feature = "Win32_Foundation")]
134 pub struct PRJ_EXTENDED_INFO {
135     pub InfoType: PRJ_EXT_INFO_TYPE,
136     pub NextInfoOffset: u32,
137     pub Anonymous: PRJ_EXTENDED_INFO_0,
138 }
139 #[cfg(feature = "Win32_Foundation")]
140 impl ::core::marker::Copy for PRJ_EXTENDED_INFO {}
141 #[cfg(feature = "Win32_Foundation")]
142 impl ::core::clone::Clone for PRJ_EXTENDED_INFO {
clone(&self) -> Self143     fn clone(&self) -> Self {
144         *self
145     }
146 }
147 #[repr(C)]
148 #[cfg(feature = "Win32_Foundation")]
149 pub union PRJ_EXTENDED_INFO_0 {
150     pub Symlink: PRJ_EXTENDED_INFO_0_0,
151 }
152 #[cfg(feature = "Win32_Foundation")]
153 impl ::core::marker::Copy for PRJ_EXTENDED_INFO_0 {}
154 #[cfg(feature = "Win32_Foundation")]
155 impl ::core::clone::Clone for PRJ_EXTENDED_INFO_0 {
clone(&self) -> Self156     fn clone(&self) -> Self {
157         *self
158     }
159 }
160 #[repr(C)]
161 #[cfg(feature = "Win32_Foundation")]
162 pub struct PRJ_EXTENDED_INFO_0_0 {
163     pub TargetName: super::super::Foundation::PWSTR,
164 }
165 #[cfg(feature = "Win32_Foundation")]
166 impl ::core::marker::Copy for PRJ_EXTENDED_INFO_0_0 {}
167 #[cfg(feature = "Win32_Foundation")]
168 impl ::core::clone::Clone for PRJ_EXTENDED_INFO_0_0 {
clone(&self) -> Self169     fn clone(&self) -> Self {
170         *self
171     }
172 }
173 pub type PRJ_EXT_INFO_TYPE = i32;
174 pub const PRJ_EXT_INFO_TYPE_SYMLINK: PRJ_EXT_INFO_TYPE = 1i32;
175 #[repr(C)]
176 #[cfg(feature = "Win32_Foundation")]
177 pub struct PRJ_FILE_BASIC_INFO {
178     pub IsDirectory: super::super::Foundation::BOOLEAN,
179     pub FileSize: i64,
180     pub CreationTime: i64,
181     pub LastAccessTime: i64,
182     pub LastWriteTime: i64,
183     pub ChangeTime: i64,
184     pub FileAttributes: u32,
185 }
186 #[cfg(feature = "Win32_Foundation")]
187 impl ::core::marker::Copy for PRJ_FILE_BASIC_INFO {}
188 #[cfg(feature = "Win32_Foundation")]
189 impl ::core::clone::Clone for PRJ_FILE_BASIC_INFO {
clone(&self) -> Self190     fn clone(&self) -> Self {
191         *self
192     }
193 }
194 pub type PRJ_FILE_STATE = u32;
195 pub const PRJ_FILE_STATE_PLACEHOLDER: PRJ_FILE_STATE = 1u32;
196 pub const PRJ_FILE_STATE_HYDRATED_PLACEHOLDER: PRJ_FILE_STATE = 2u32;
197 pub const PRJ_FILE_STATE_DIRTY_PLACEHOLDER: PRJ_FILE_STATE = 4u32;
198 pub const PRJ_FILE_STATE_FULL: PRJ_FILE_STATE = 8u32;
199 pub const PRJ_FILE_STATE_TOMBSTONE: PRJ_FILE_STATE = 16u32;
200 #[cfg(feature = "Win32_Foundation")]
201 pub type PRJ_GET_DIRECTORY_ENUMERATION_CB = unsafe extern "system" fn(callbackdata: *const PRJ_CALLBACK_DATA, enumerationid: *const ::windows_sys::core::GUID, searchexpression: super::super::Foundation::PWSTR, direntrybufferhandle: PRJ_DIR_ENTRY_BUFFER_HANDLE) -> ::windows_sys::core::HRESULT;
202 #[cfg(feature = "Win32_Foundation")]
203 pub type PRJ_GET_FILE_DATA_CB = unsafe extern "system" fn(callbackdata: *const PRJ_CALLBACK_DATA, byteoffset: u64, length: u32) -> ::windows_sys::core::HRESULT;
204 #[cfg(feature = "Win32_Foundation")]
205 pub type PRJ_GET_PLACEHOLDER_INFO_CB = unsafe extern "system" fn(callbackdata: *const PRJ_CALLBACK_DATA) -> ::windows_sys::core::HRESULT;
206 pub type PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT = isize;
207 pub type PRJ_NOTIFICATION = i32;
208 pub const PRJ_NOTIFICATION_FILE_OPENED: PRJ_NOTIFICATION = 2i32;
209 pub const PRJ_NOTIFICATION_NEW_FILE_CREATED: PRJ_NOTIFICATION = 4i32;
210 pub const PRJ_NOTIFICATION_FILE_OVERWRITTEN: PRJ_NOTIFICATION = 8i32;
211 pub const PRJ_NOTIFICATION_PRE_DELETE: PRJ_NOTIFICATION = 16i32;
212 pub const PRJ_NOTIFICATION_PRE_RENAME: PRJ_NOTIFICATION = 32i32;
213 pub const PRJ_NOTIFICATION_PRE_SET_HARDLINK: PRJ_NOTIFICATION = 64i32;
214 pub const PRJ_NOTIFICATION_FILE_RENAMED: PRJ_NOTIFICATION = 128i32;
215 pub const PRJ_NOTIFICATION_HARDLINK_CREATED: PRJ_NOTIFICATION = 256i32;
216 pub const PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_NO_MODIFICATION: PRJ_NOTIFICATION = 512i32;
217 pub const PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED: PRJ_NOTIFICATION = 1024i32;
218 pub const PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED: PRJ_NOTIFICATION = 2048i32;
219 pub const PRJ_NOTIFICATION_FILE_PRE_CONVERT_TO_FULL: PRJ_NOTIFICATION = 4096i32;
220 #[cfg(feature = "Win32_Foundation")]
221 pub type PRJ_NOTIFICATION_CB = unsafe extern "system" fn(callbackdata: *const PRJ_CALLBACK_DATA, isdirectory: super::super::Foundation::BOOLEAN, notification: PRJ_NOTIFICATION, destinationfilename: super::super::Foundation::PWSTR, operationparameters: *mut PRJ_NOTIFICATION_PARAMETERS) -> ::windows_sys::core::HRESULT;
222 #[repr(C)]
223 #[cfg(feature = "Win32_Foundation")]
224 pub struct PRJ_NOTIFICATION_MAPPING {
225     pub NotificationBitMask: PRJ_NOTIFY_TYPES,
226     pub NotificationRoot: super::super::Foundation::PWSTR,
227 }
228 #[cfg(feature = "Win32_Foundation")]
229 impl ::core::marker::Copy for PRJ_NOTIFICATION_MAPPING {}
230 #[cfg(feature = "Win32_Foundation")]
231 impl ::core::clone::Clone for PRJ_NOTIFICATION_MAPPING {
clone(&self) -> Self232     fn clone(&self) -> Self {
233         *self
234     }
235 }
236 #[repr(C)]
237 #[cfg(feature = "Win32_Foundation")]
238 pub union PRJ_NOTIFICATION_PARAMETERS {
239     pub PostCreate: PRJ_NOTIFICATION_PARAMETERS_2,
240     pub FileRenamed: PRJ_NOTIFICATION_PARAMETERS_1,
241     pub FileDeletedOnHandleClose: PRJ_NOTIFICATION_PARAMETERS_0,
242 }
243 #[cfg(feature = "Win32_Foundation")]
244 impl ::core::marker::Copy for PRJ_NOTIFICATION_PARAMETERS {}
245 #[cfg(feature = "Win32_Foundation")]
246 impl ::core::clone::Clone for PRJ_NOTIFICATION_PARAMETERS {
clone(&self) -> Self247     fn clone(&self) -> Self {
248         *self
249     }
250 }
251 #[repr(C)]
252 #[cfg(feature = "Win32_Foundation")]
253 pub struct PRJ_NOTIFICATION_PARAMETERS_0 {
254     pub IsFileModified: super::super::Foundation::BOOLEAN,
255 }
256 #[cfg(feature = "Win32_Foundation")]
257 impl ::core::marker::Copy for PRJ_NOTIFICATION_PARAMETERS_0 {}
258 #[cfg(feature = "Win32_Foundation")]
259 impl ::core::clone::Clone for PRJ_NOTIFICATION_PARAMETERS_0 {
clone(&self) -> Self260     fn clone(&self) -> Self {
261         *self
262     }
263 }
264 #[repr(C)]
265 #[cfg(feature = "Win32_Foundation")]
266 pub struct PRJ_NOTIFICATION_PARAMETERS_1 {
267     pub NotificationMask: PRJ_NOTIFY_TYPES,
268 }
269 #[cfg(feature = "Win32_Foundation")]
270 impl ::core::marker::Copy for PRJ_NOTIFICATION_PARAMETERS_1 {}
271 #[cfg(feature = "Win32_Foundation")]
272 impl ::core::clone::Clone for PRJ_NOTIFICATION_PARAMETERS_1 {
clone(&self) -> Self273     fn clone(&self) -> Self {
274         *self
275     }
276 }
277 #[repr(C)]
278 #[cfg(feature = "Win32_Foundation")]
279 pub struct PRJ_NOTIFICATION_PARAMETERS_2 {
280     pub NotificationMask: PRJ_NOTIFY_TYPES,
281 }
282 #[cfg(feature = "Win32_Foundation")]
283 impl ::core::marker::Copy for PRJ_NOTIFICATION_PARAMETERS_2 {}
284 #[cfg(feature = "Win32_Foundation")]
285 impl ::core::clone::Clone for PRJ_NOTIFICATION_PARAMETERS_2 {
clone(&self) -> Self286     fn clone(&self) -> Self {
287         *self
288     }
289 }
290 pub type PRJ_NOTIFY_TYPES = u32;
291 pub const PRJ_NOTIFY_NONE: PRJ_NOTIFY_TYPES = 0u32;
292 pub const PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS: PRJ_NOTIFY_TYPES = 1u32;
293 pub const PRJ_NOTIFY_FILE_OPENED: PRJ_NOTIFY_TYPES = 2u32;
294 pub const PRJ_NOTIFY_NEW_FILE_CREATED: PRJ_NOTIFY_TYPES = 4u32;
295 pub const PRJ_NOTIFY_FILE_OVERWRITTEN: PRJ_NOTIFY_TYPES = 8u32;
296 pub const PRJ_NOTIFY_PRE_DELETE: PRJ_NOTIFY_TYPES = 16u32;
297 pub const PRJ_NOTIFY_PRE_RENAME: PRJ_NOTIFY_TYPES = 32u32;
298 pub const PRJ_NOTIFY_PRE_SET_HARDLINK: PRJ_NOTIFY_TYPES = 64u32;
299 pub const PRJ_NOTIFY_FILE_RENAMED: PRJ_NOTIFY_TYPES = 128u32;
300 pub const PRJ_NOTIFY_HARDLINK_CREATED: PRJ_NOTIFY_TYPES = 256u32;
301 pub const PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION: PRJ_NOTIFY_TYPES = 512u32;
302 pub const PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED: PRJ_NOTIFY_TYPES = 1024u32;
303 pub const PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED: PRJ_NOTIFY_TYPES = 2048u32;
304 pub const PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL: PRJ_NOTIFY_TYPES = 4096u32;
305 pub const PRJ_NOTIFY_USE_EXISTING_MASK: PRJ_NOTIFY_TYPES = 4294967295u32;
306 pub type PRJ_PLACEHOLDER_ID = i32;
307 pub const PRJ_PLACEHOLDER_ID_LENGTH: PRJ_PLACEHOLDER_ID = 128i32;
308 #[repr(C)]
309 #[cfg(feature = "Win32_Foundation")]
310 pub struct PRJ_PLACEHOLDER_INFO {
311     pub FileBasicInfo: PRJ_FILE_BASIC_INFO,
312     pub EaInformation: PRJ_PLACEHOLDER_INFO_0,
313     pub SecurityInformation: PRJ_PLACEHOLDER_INFO_1,
314     pub StreamsInformation: PRJ_PLACEHOLDER_INFO_2,
315     pub VersionInfo: PRJ_PLACEHOLDER_VERSION_INFO,
316     pub VariableData: [u8; 1],
317 }
318 #[cfg(feature = "Win32_Foundation")]
319 impl ::core::marker::Copy for PRJ_PLACEHOLDER_INFO {}
320 #[cfg(feature = "Win32_Foundation")]
321 impl ::core::clone::Clone for PRJ_PLACEHOLDER_INFO {
clone(&self) -> Self322     fn clone(&self) -> Self {
323         *self
324     }
325 }
326 #[repr(C)]
327 #[cfg(feature = "Win32_Foundation")]
328 pub struct PRJ_PLACEHOLDER_INFO_0 {
329     pub EaBufferSize: u32,
330     pub OffsetToFirstEa: u32,
331 }
332 #[cfg(feature = "Win32_Foundation")]
333 impl ::core::marker::Copy for PRJ_PLACEHOLDER_INFO_0 {}
334 #[cfg(feature = "Win32_Foundation")]
335 impl ::core::clone::Clone for PRJ_PLACEHOLDER_INFO_0 {
clone(&self) -> Self336     fn clone(&self) -> Self {
337         *self
338     }
339 }
340 #[repr(C)]
341 #[cfg(feature = "Win32_Foundation")]
342 pub struct PRJ_PLACEHOLDER_INFO_1 {
343     pub SecurityBufferSize: u32,
344     pub OffsetToSecurityDescriptor: u32,
345 }
346 #[cfg(feature = "Win32_Foundation")]
347 impl ::core::marker::Copy for PRJ_PLACEHOLDER_INFO_1 {}
348 #[cfg(feature = "Win32_Foundation")]
349 impl ::core::clone::Clone for PRJ_PLACEHOLDER_INFO_1 {
clone(&self) -> Self350     fn clone(&self) -> Self {
351         *self
352     }
353 }
354 #[repr(C)]
355 #[cfg(feature = "Win32_Foundation")]
356 pub struct PRJ_PLACEHOLDER_INFO_2 {
357     pub StreamsInfoBufferSize: u32,
358     pub OffsetToFirstStreamInfo: u32,
359 }
360 #[cfg(feature = "Win32_Foundation")]
361 impl ::core::marker::Copy for PRJ_PLACEHOLDER_INFO_2 {}
362 #[cfg(feature = "Win32_Foundation")]
363 impl ::core::clone::Clone for PRJ_PLACEHOLDER_INFO_2 {
clone(&self) -> Self364     fn clone(&self) -> Self {
365         *self
366     }
367 }
368 #[repr(C)]
369 pub struct PRJ_PLACEHOLDER_VERSION_INFO {
370     pub ProviderID: [u8; 128],
371     pub ContentID: [u8; 128],
372 }
373 impl ::core::marker::Copy for PRJ_PLACEHOLDER_VERSION_INFO {}
374 impl ::core::clone::Clone for PRJ_PLACEHOLDER_VERSION_INFO {
clone(&self) -> Self375     fn clone(&self) -> Self {
376         *self
377     }
378 }
379 #[cfg(feature = "Win32_Foundation")]
380 pub type PRJ_QUERY_FILE_NAME_CB = unsafe extern "system" fn(callbackdata: *const PRJ_CALLBACK_DATA) -> ::windows_sys::core::HRESULT;
381 pub type PRJ_STARTVIRTUALIZING_FLAGS = u32;
382 pub const PRJ_FLAG_NONE: PRJ_STARTVIRTUALIZING_FLAGS = 0u32;
383 pub const PRJ_FLAG_USE_NEGATIVE_PATH_CACHE: PRJ_STARTVIRTUALIZING_FLAGS = 1u32;
384 #[repr(C)]
385 #[cfg(feature = "Win32_Foundation")]
386 pub struct PRJ_STARTVIRTUALIZING_OPTIONS {
387     pub Flags: PRJ_STARTVIRTUALIZING_FLAGS,
388     pub PoolThreadCount: u32,
389     pub ConcurrentThreadCount: u32,
390     pub NotificationMappings: *mut PRJ_NOTIFICATION_MAPPING,
391     pub NotificationMappingsCount: u32,
392 }
393 #[cfg(feature = "Win32_Foundation")]
394 impl ::core::marker::Copy for PRJ_STARTVIRTUALIZING_OPTIONS {}
395 #[cfg(feature = "Win32_Foundation")]
396 impl ::core::clone::Clone for PRJ_STARTVIRTUALIZING_OPTIONS {
clone(&self) -> Self397     fn clone(&self) -> Self {
398         *self
399     }
400 }
401 #[cfg(feature = "Win32_Foundation")]
402 pub type PRJ_START_DIRECTORY_ENUMERATION_CB = unsafe extern "system" fn(callbackdata: *const PRJ_CALLBACK_DATA, enumerationid: *const ::windows_sys::core::GUID) -> ::windows_sys::core::HRESULT;
403 pub type PRJ_UPDATE_FAILURE_CAUSES = u32;
404 pub const PRJ_UPDATE_FAILURE_CAUSE_NONE: PRJ_UPDATE_FAILURE_CAUSES = 0u32;
405 pub const PRJ_UPDATE_FAILURE_CAUSE_DIRTY_METADATA: PRJ_UPDATE_FAILURE_CAUSES = 1u32;
406 pub const PRJ_UPDATE_FAILURE_CAUSE_DIRTY_DATA: PRJ_UPDATE_FAILURE_CAUSES = 2u32;
407 pub const PRJ_UPDATE_FAILURE_CAUSE_TOMBSTONE: PRJ_UPDATE_FAILURE_CAUSES = 4u32;
408 pub const PRJ_UPDATE_FAILURE_CAUSE_READ_ONLY: PRJ_UPDATE_FAILURE_CAUSES = 8u32;
409 pub type PRJ_UPDATE_TYPES = u32;
410 pub const PRJ_UPDATE_NONE: PRJ_UPDATE_TYPES = 0u32;
411 pub const PRJ_UPDATE_ALLOW_DIRTY_METADATA: PRJ_UPDATE_TYPES = 1u32;
412 pub const PRJ_UPDATE_ALLOW_DIRTY_DATA: PRJ_UPDATE_TYPES = 2u32;
413 pub const PRJ_UPDATE_ALLOW_TOMBSTONE: PRJ_UPDATE_TYPES = 4u32;
414 pub const PRJ_UPDATE_RESERVED1: PRJ_UPDATE_TYPES = 8u32;
415 pub const PRJ_UPDATE_RESERVED2: PRJ_UPDATE_TYPES = 16u32;
416 pub const PRJ_UPDATE_ALLOW_READ_ONLY: PRJ_UPDATE_TYPES = 32u32;
417 pub const PRJ_UPDATE_MAX_VAL: PRJ_UPDATE_TYPES = 64u32;
418 #[repr(C)]
419 pub struct PRJ_VIRTUALIZATION_INSTANCE_INFO {
420     pub InstanceID: ::windows_sys::core::GUID,
421     pub WriteAlignment: u32,
422 }
423 impl ::core::marker::Copy for PRJ_VIRTUALIZATION_INSTANCE_INFO {}
424 impl ::core::clone::Clone for PRJ_VIRTUALIZATION_INSTANCE_INFO {
clone(&self) -> Self425     fn clone(&self) -> Self {
426         *self
427     }
428 }
429