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