1 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
3 pub struct IDedupBackupSupport(::windows
::core
::IUnknown
);
4 impl IDedupBackupSupport
{
5 pub unsafe fn RestoreFiles
<P0
>(&self, numberoffiles
: u32, filefullpaths
: *const ::windows
::core
::BSTR
, store
: P0
, flags
: u32, fileresults
: *mut ::windows
::core
::HRESULT
) -> ::windows
::core
::Result
<()>
7 P0
: ::windows
::core
::IntoParam
<IDedupReadFileCallback
>,
9 (::windows
::core
::Interface
::vtable(self).RestoreFiles
)(::windows
::core
::Interface
::as_raw(self), numberoffiles
, ::core
::mem
::transmute(filefullpaths
), store
.into_param().abi(), flags
, fileresults
).ok()
12 ::windows
::imp
::interface_hierarchy
!(IDedupBackupSupport
, ::windows
::core
::IUnknown
);
13 impl ::core
::cmp
::PartialEq
for IDedupBackupSupport
{
14 fn eq(&self, other
: &Self) -> bool
{
18 impl ::core
::cmp
::Eq
for IDedupBackupSupport {}
19 impl ::core
::fmt
::Debug
for IDedupBackupSupport
{
20 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
21 f
.debug_tuple("IDedupBackupSupport").field(&self.0).finish()
24 unsafe impl ::windows
::core
::Interface
for IDedupBackupSupport
{
25 type Vtable
= IDedupBackupSupport_Vtbl
;
27 impl ::core
::clone
::Clone
for IDedupBackupSupport
{
28 fn clone(&self) -> Self {
32 unsafe impl ::windows
::core
::ComInterface
for IDedupBackupSupport
{
33 const IID
: ::windows
::core
::GUID
= ::windows
::core
::GUID
::from_u128(0xc719d963_2b2d_415e_acf7_7eb7ca596ff4);
37 pub struct IDedupBackupSupport_Vtbl
{
38 pub base__
: ::windows
::core
::IUnknown_Vtbl
,
39 pub RestoreFiles
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, numberoffiles
: u32, filefullpaths
: *const ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>, store
: *mut ::core
::ffi
::c_void
, flags
: u32, fileresults
: *mut ::windows
::core
::HRESULT
) -> ::windows
::core
::HRESULT
,
41 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
43 pub struct IDedupChunkLibrary(::windows
::core
::IUnknown
);
44 impl IDedupChunkLibrary
{
45 pub unsafe fn InitializeForPushBuffers(&self) -> ::windows
::core
::Result
<()> {
46 (::windows
::core
::Interface
::vtable(self).InitializeForPushBuffers
)(::windows
::core
::Interface
::as_raw(self)).ok()
48 pub unsafe fn Uninitialize(&self) -> ::windows
::core
::Result
<()> {
49 (::windows
::core
::Interface
::vtable(self).Uninitialize
)(::windows
::core
::Interface
::as_raw(self)).ok()
51 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
52 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
53 pub unsafe fn SetParameter(&self, dwparamtype
: u32, vparamvalue
: super::super::System
::Com
::VARIANT
) -> ::windows
::core
::Result
<()> {
54 (::windows
::core
::Interface
::vtable(self).SetParameter
)(::windows
::core
::Interface
::as_raw(self), dwparamtype
, ::core
::mem
::transmute(vparamvalue
)).ok()
56 pub unsafe fn StartChunking(&self, iiditeratorinterfaceid
: ::windows
::core
::GUID
) -> ::windows
::core
::Result
<::windows
::core
::IUnknown
> {
57 let mut result__
= ::windows
::core
::zeroed
::<::windows
::core
::IUnknown
>();
58 (::windows
::core
::Interface
::vtable(self).StartChunking
)(::windows
::core
::Interface
::as_raw(self), ::core
::mem
::transmute(iiditeratorinterfaceid
), &mut result__
).from_abi(result__
)
61 ::windows
::imp
::interface_hierarchy
!(IDedupChunkLibrary
, ::windows
::core
::IUnknown
);
62 impl ::core
::cmp
::PartialEq
for IDedupChunkLibrary
{
63 fn eq(&self, other
: &Self) -> bool
{
67 impl ::core
::cmp
::Eq
for IDedupChunkLibrary {}
68 impl ::core
::fmt
::Debug
for IDedupChunkLibrary
{
69 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
70 f
.debug_tuple("IDedupChunkLibrary").field(&self.0).finish()
73 unsafe impl ::windows
::core
::Interface
for IDedupChunkLibrary
{
74 type Vtable
= IDedupChunkLibrary_Vtbl
;
76 impl ::core
::clone
::Clone
for IDedupChunkLibrary
{
77 fn clone(&self) -> Self {
81 unsafe impl ::windows
::core
::ComInterface
for IDedupChunkLibrary
{
82 const IID
: ::windows
::core
::GUID
= ::windows
::core
::GUID
::from_u128(0xbb5144d7_2720_4dcc_8777_78597416ec23);
86 pub struct IDedupChunkLibrary_Vtbl
{
87 pub base__
: ::windows
::core
::IUnknown_Vtbl
,
88 pub InitializeForPushBuffers
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
) -> ::windows
::core
::HRESULT
,
89 pub Uninitialize
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
) -> ::windows
::core
::HRESULT
,
90 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
91 pub SetParameter
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, dwparamtype
: u32, vparamvalue
: super::super::System
::Com
::VARIANT
) -> ::windows
::core
::HRESULT
,
92 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
94 pub StartChunking
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, iiditeratorinterfaceid
: ::windows
::core
::GUID
, ppchunksenum
: *mut *mut ::core
::ffi
::c_void
) -> ::windows
::core
::HRESULT
,
96 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
98 pub struct IDedupDataPort(::windows
::core
::IUnknown
);
100 pub unsafe fn GetStatus(&self, pstatus
: *mut DedupDataPortVolumeStatus
, pdataheadroommb
: *mut u32) -> ::windows
::core
::Result
<()> {
101 (::windows
::core
::Interface
::vtable(self).GetStatus
)(::windows
::core
::Interface
::as_raw(self), pstatus
, pdataheadroommb
).ok()
103 pub unsafe fn LookupChunks(&self, phashes
: &[DedupHash
]) -> ::windows
::core
::Result
<::windows
::core
::GUID
> {
104 let mut result__
= ::windows
::core
::zeroed
::<::windows
::core
::GUID
>();
105 (::windows
::core
::Interface
::vtable(self).LookupChunks
)(::windows
::core
::Interface
::as_raw(self), phashes
.len() as _
, ::core
::mem
::transmute(phashes
.as_ptr()), &mut result__
).from_abi(result__
)
107 pub unsafe fn InsertChunks(&self, pchunkmetadata
: &[DedupChunk
], pchunkdata
: &[u8]) -> ::windows
::core
::Result
<::windows
::core
::GUID
> {
108 let mut result__
= ::windows
::core
::zeroed
::<::windows
::core
::GUID
>();
109 (::windows
::core
::Interface
::vtable(self).InsertChunks
)(::windows
::core
::Interface
::as_raw(self), pchunkmetadata
.len() as _
, ::core
::mem
::transmute(pchunkmetadata
.as_ptr()), pchunkdata
.len() as _
, ::core
::mem
::transmute(pchunkdata
.as_ptr()), &mut result__
).from_abi(result__
)
111 #[doc = "*Required features: `\"Win32_System_Com\"`*"]
112 #[cfg(feature = "Win32_System_Com")]
113 pub unsafe fn InsertChunksWithStream
<P0
>(&self, pchunkmetadata
: &[DedupChunk
], databytecount
: u32, pchunkdatastream
: P0
) -> ::windows
::core
::Result
<::windows
::core
::GUID
>
115 P0
: ::windows
::core
::IntoParam
<super::super::System
::Com
::IStream
>,
117 let mut result__
= ::windows
::core
::zeroed
::<::windows
::core
::GUID
>();
118 (::windows
::core
::Interface
::vtable(self).InsertChunksWithStream
)(::windows
::core
::Interface
::as_raw(self), pchunkmetadata
.len() as _
, ::core
::mem
::transmute(pchunkmetadata
.as_ptr()), databytecount
, pchunkdatastream
.into_param().abi(), &mut result__
).from_abi(result__
)
120 pub unsafe fn CommitStreams(&self, pstreams
: &[DedupStream
], pentries
: &[DedupStreamEntry
]) -> ::windows
::core
::Result
<::windows
::core
::GUID
> {
121 let mut result__
= ::windows
::core
::zeroed
::<::windows
::core
::GUID
>();
122 (::windows
::core
::Interface
::vtable(self).CommitStreams
)(::windows
::core
::Interface
::as_raw(self), pstreams
.len() as _
, ::core
::mem
::transmute(pstreams
.as_ptr()), pentries
.len() as _
, ::core
::mem
::transmute(pentries
.as_ptr()), &mut result__
).from_abi(result__
)
124 #[doc = "*Required features: `\"Win32_System_Com\"`*"]
125 #[cfg(feature = "Win32_System_Com")]
126 pub unsafe fn CommitStreamsWithStream
<P0
>(&self, pstreams
: &[DedupStream
], entrycount
: u32, pentriesstream
: P0
) -> ::windows
::core
::Result
<::windows
::core
::GUID
>
128 P0
: ::windows
::core
::IntoParam
<super::super::System
::Com
::IStream
>,
130 let mut result__
= ::windows
::core
::zeroed
::<::windows
::core
::GUID
>();
131 (::windows
::core
::Interface
::vtable(self).CommitStreamsWithStream
)(::windows
::core
::Interface
::as_raw(self), pstreams
.len() as _
, ::core
::mem
::transmute(pstreams
.as_ptr()), entrycount
, pentriesstream
.into_param().abi(), &mut result__
).from_abi(result__
)
133 pub unsafe fn GetStreams(&self, pstreampaths
: &[::windows
::core
::BSTR
]) -> ::windows
::core
::Result
<::windows
::core
::GUID
> {
134 let mut result__
= ::windows
::core
::zeroed
::<::windows
::core
::GUID
>();
135 (::windows
::core
::Interface
::vtable(self).GetStreams
)(::windows
::core
::Interface
::as_raw(self), pstreampaths
.len() as _
, ::core
::mem
::transmute(pstreampaths
.as_ptr()), &mut result__
).from_abi(result__
)
137 pub unsafe fn GetStreamsResults(&self, requestid
: ::windows
::core
::GUID
, maxwaitms
: u32, streamentryindex
: u32, pstreamcount
: *mut u32, ppstreams
: *mut *mut DedupStream
, pentrycount
: *mut u32, ppentries
: *mut *mut DedupStreamEntry
, pstatus
: *mut DedupDataPortRequestStatus
, ppitemresults
: *mut *mut ::windows
::core
::HRESULT
) -> ::windows
::core
::Result
<()> {
138 (::windows
::core
::Interface
::vtable(self).GetStreamsResults
)(::windows
::core
::Interface
::as_raw(self), ::core
::mem
::transmute(requestid
), maxwaitms
, streamentryindex
, pstreamcount
, ppstreams
, pentrycount
, ppentries
, pstatus
, ppitemresults
).ok()
140 pub unsafe fn GetChunks(&self, phashes
: &[DedupHash
]) -> ::windows
::core
::Result
<::windows
::core
::GUID
> {
141 let mut result__
= ::windows
::core
::zeroed
::<::windows
::core
::GUID
>();
142 (::windows
::core
::Interface
::vtable(self).GetChunks
)(::windows
::core
::Interface
::as_raw(self), phashes
.len() as _
, ::core
::mem
::transmute(phashes
.as_ptr()), &mut result__
).from_abi(result__
)
144 pub unsafe fn GetChunksResults(&self, requestid
: ::windows
::core
::GUID
, maxwaitms
: u32, chunkindex
: u32, pchunkcount
: *mut u32, ppchunkmetadata
: *mut *mut DedupChunk
, pdatabytecount
: *mut u32, ppchunkdata
: *mut *mut u8, pstatus
: *mut DedupDataPortRequestStatus
, ppitemresults
: *mut *mut ::windows
::core
::HRESULT
) -> ::windows
::core
::Result
<()> {
145 (::windows
::core
::Interface
::vtable(self).GetChunksResults
)(::windows
::core
::Interface
::as_raw(self), ::core
::mem
::transmute(requestid
), maxwaitms
, chunkindex
, pchunkcount
, ppchunkmetadata
, pdatabytecount
, ppchunkdata
, pstatus
, ppitemresults
).ok()
147 pub unsafe fn GetRequestStatus(&self, requestid
: ::windows
::core
::GUID
) -> ::windows
::core
::Result
<DedupDataPortRequestStatus
> {
148 let mut result__
= ::windows
::core
::zeroed
::<DedupDataPortRequestStatus
>();
149 (::windows
::core
::Interface
::vtable(self).GetRequestStatus
)(::windows
::core
::Interface
::as_raw(self), ::core
::mem
::transmute(requestid
), &mut result__
).from_abi(result__
)
151 pub unsafe fn GetRequestResults(&self, requestid
: ::windows
::core
::GUID
, maxwaitms
: u32, pbatchresult
: *mut ::windows
::core
::HRESULT
, pbatchcount
: *mut u32, pstatus
: *mut DedupDataPortRequestStatus
, ppitemresults
: *mut *mut ::windows
::core
::HRESULT
) -> ::windows
::core
::Result
<()> {
152 (::windows
::core
::Interface
::vtable(self).GetRequestResults
)(::windows
::core
::Interface
::as_raw(self), ::core
::mem
::transmute(requestid
), maxwaitms
, pbatchresult
, pbatchcount
, pstatus
, ppitemresults
).ok()
155 ::windows
::imp
::interface_hierarchy
!(IDedupDataPort
, ::windows
::core
::IUnknown
);
156 impl ::core
::cmp
::PartialEq
for IDedupDataPort
{
157 fn eq(&self, other
: &Self) -> bool
{
161 impl ::core
::cmp
::Eq
for IDedupDataPort {}
162 impl ::core
::fmt
::Debug
for IDedupDataPort
{
163 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
164 f
.debug_tuple("IDedupDataPort").field(&self.0).finish()
167 unsafe impl ::windows
::core
::Interface
for IDedupDataPort
{
168 type Vtable
= IDedupDataPort_Vtbl
;
170 impl ::core
::clone
::Clone
for IDedupDataPort
{
171 fn clone(&self) -> Self {
175 unsafe impl ::windows
::core
::ComInterface
for IDedupDataPort
{
176 const IID
: ::windows
::core
::GUID
= ::windows
::core
::GUID
::from_u128(0x7963d734_40a9_4ea3_bbf6_5a89d26f7ae8);
180 pub struct IDedupDataPort_Vtbl
{
181 pub base__
: ::windows
::core
::IUnknown_Vtbl
,
182 pub GetStatus
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, pstatus
: *mut DedupDataPortVolumeStatus
, pdataheadroommb
: *mut u32) -> ::windows
::core
::HRESULT
,
183 pub LookupChunks
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, count
: u32, phashes
: *const DedupHash
, prequestid
: *mut ::windows
::core
::GUID
) -> ::windows
::core
::HRESULT
,
184 pub InsertChunks
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, chunkcount
: u32, pchunkmetadata
: *const DedupChunk
, databytecount
: u32, pchunkdata
: *const u8, prequestid
: *mut ::windows
::core
::GUID
) -> ::windows
::core
::HRESULT
,
185 #[cfg(feature = "Win32_System_Com")]
186 pub InsertChunksWithStream
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, chunkcount
: u32, pchunkmetadata
: *const DedupChunk
, databytecount
: u32, pchunkdatastream
: *mut ::core
::ffi
::c_void
, prequestid
: *mut ::windows
::core
::GUID
) -> ::windows
::core
::HRESULT
,
187 #[cfg(not(feature = "Win32_System_Com"))]
188 InsertChunksWithStream
: usize,
189 pub CommitStreams
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, streamcount
: u32, pstreams
: *const DedupStream
, entrycount
: u32, pentries
: *const DedupStreamEntry
, prequestid
: *mut ::windows
::core
::GUID
) -> ::windows
::core
::HRESULT
,
190 #[cfg(feature = "Win32_System_Com")]
191 pub CommitStreamsWithStream
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, streamcount
: u32, pstreams
: *const DedupStream
, entrycount
: u32, pentriesstream
: *mut ::core
::ffi
::c_void
, prequestid
: *mut ::windows
::core
::GUID
) -> ::windows
::core
::HRESULT
,
192 #[cfg(not(feature = "Win32_System_Com"))]
193 CommitStreamsWithStream
: usize,
194 pub GetStreams
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, streamcount
: u32, pstreampaths
: *const ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>, prequestid
: *mut ::windows
::core
::GUID
) -> ::windows
::core
::HRESULT
,
195 pub GetStreamsResults
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, requestid
: ::windows
::core
::GUID
, maxwaitms
: u32, streamentryindex
: u32, pstreamcount
: *mut u32, ppstreams
: *mut *mut DedupStream
, pentrycount
: *mut u32, ppentries
: *mut *mut DedupStreamEntry
, pstatus
: *mut DedupDataPortRequestStatus
, ppitemresults
: *mut *mut ::windows
::core
::HRESULT
) -> ::windows
::core
::HRESULT
,
196 pub GetChunks
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, count
: u32, phashes
: *const DedupHash
, prequestid
: *mut ::windows
::core
::GUID
) -> ::windows
::core
::HRESULT
,
197 pub GetChunksResults
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, requestid
: ::windows
::core
::GUID
, maxwaitms
: u32, chunkindex
: u32, pchunkcount
: *mut u32, ppchunkmetadata
: *mut *mut DedupChunk
, pdatabytecount
: *mut u32, ppchunkdata
: *mut *mut u8, pstatus
: *mut DedupDataPortRequestStatus
, ppitemresults
: *mut *mut ::windows
::core
::HRESULT
) -> ::windows
::core
::HRESULT
,
198 pub GetRequestStatus
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, requestid
: ::windows
::core
::GUID
, pstatus
: *mut DedupDataPortRequestStatus
) -> ::windows
::core
::HRESULT
,
199 pub GetRequestResults
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, requestid
: ::windows
::core
::GUID
, maxwaitms
: u32, pbatchresult
: *mut ::windows
::core
::HRESULT
, pbatchcount
: *mut u32, pstatus
: *mut DedupDataPortRequestStatus
, ppitemresults
: *mut *mut ::windows
::core
::HRESULT
) -> ::windows
::core
::HRESULT
,
201 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
203 pub struct IDedupDataPortManager(::windows
::core
::IUnknown
);
204 impl IDedupDataPortManager
{
205 pub unsafe fn GetConfiguration(&self, pminchunksize
: *mut u32, pmaxchunksize
: *mut u32, pchunkingalgorithm
: *mut DedupChunkingAlgorithm
, phashingalgorithm
: *mut DedupHashingAlgorithm
, pcompressionalgorithm
: *mut DedupCompressionAlgorithm
) -> ::windows
::core
::Result
<()> {
206 (::windows
::core
::Interface
::vtable(self).GetConfiguration
)(::windows
::core
::Interface
::as_raw(self), pminchunksize
, pmaxchunksize
, pchunkingalgorithm
, phashingalgorithm
, pcompressionalgorithm
).ok()
208 pub unsafe fn GetVolumeStatus
<P0
>(&self, options
: u32, path
: P0
) -> ::windows
::core
::Result
<DedupDataPortVolumeStatus
>
210 P0
: ::windows
::core
::IntoParam
<::windows
::core
::BSTR
>,
212 let mut result__
= ::windows
::core
::zeroed
::<DedupDataPortVolumeStatus
>();
213 (::windows
::core
::Interface
::vtable(self).GetVolumeStatus
)(::windows
::core
::Interface
::as_raw(self), options
, path
.into_param().abi(), &mut result__
).from_abi(result__
)
215 pub unsafe fn GetVolumeDataPort
<P0
>(&self, options
: u32, path
: P0
) -> ::windows
::core
::Result
<IDedupDataPort
>
217 P0
: ::windows
::core
::IntoParam
<::windows
::core
::BSTR
>,
219 let mut result__
= ::windows
::core
::zeroed
::<IDedupDataPort
>();
220 (::windows
::core
::Interface
::vtable(self).GetVolumeDataPort
)(::windows
::core
::Interface
::as_raw(self), options
, path
.into_param().abi(), &mut result__
).from_abi(result__
)
223 ::windows
::imp
::interface_hierarchy
!(IDedupDataPortManager
, ::windows
::core
::IUnknown
);
224 impl ::core
::cmp
::PartialEq
for IDedupDataPortManager
{
225 fn eq(&self, other
: &Self) -> bool
{
229 impl ::core
::cmp
::Eq
for IDedupDataPortManager {}
230 impl ::core
::fmt
::Debug
for IDedupDataPortManager
{
231 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
232 f
.debug_tuple("IDedupDataPortManager").field(&self.0).finish()
235 unsafe impl ::windows
::core
::Interface
for IDedupDataPortManager
{
236 type Vtable
= IDedupDataPortManager_Vtbl
;
238 impl ::core
::clone
::Clone
for IDedupDataPortManager
{
239 fn clone(&self) -> Self {
243 unsafe impl ::windows
::core
::ComInterface
for IDedupDataPortManager
{
244 const IID
: ::windows
::core
::GUID
= ::windows
::core
::GUID
::from_u128(0x44677452_b90a_445e_8192_cdcfe81511fb);
248 pub struct IDedupDataPortManager_Vtbl
{
249 pub base__
: ::windows
::core
::IUnknown_Vtbl
,
250 pub GetConfiguration
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, pminchunksize
: *mut u32, pmaxchunksize
: *mut u32, pchunkingalgorithm
: *mut DedupChunkingAlgorithm
, phashingalgorithm
: *mut DedupHashingAlgorithm
, pcompressionalgorithm
: *mut DedupCompressionAlgorithm
) -> ::windows
::core
::HRESULT
,
251 pub GetVolumeStatus
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, options
: u32, path
: ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>, pstatus
: *mut DedupDataPortVolumeStatus
) -> ::windows
::core
::HRESULT
,
252 pub GetVolumeDataPort
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, options
: u32, path
: ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>, ppdataport
: *mut *mut ::core
::ffi
::c_void
) -> ::windows
::core
::HRESULT
,
254 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
256 pub struct IDedupIterateChunksHash32(::windows
::core
::IUnknown
);
257 impl IDedupIterateChunksHash32
{
258 pub unsafe fn PushBuffer(&self, pbuffer
: &[u8]) -> ::windows
::core
::Result
<()> {
259 (::windows
::core
::Interface
::vtable(self).PushBuffer
)(::windows
::core
::Interface
::as_raw(self), ::core
::mem
::transmute(pbuffer
.as_ptr()), pbuffer
.len() as _
).ok()
261 pub unsafe fn Next(&self, parrchunks
: &mut [DEDUP_CHUNK_INFO_HASH32
], pulfetched
: *mut u32) -> ::windows
::core
::Result
<()> {
262 (::windows
::core
::Interface
::vtable(self).Next
)(::windows
::core
::Interface
::as_raw(self), parrchunks
.len() as _
, ::core
::mem
::transmute(parrchunks
.as_ptr()), pulfetched
).ok()
264 pub unsafe fn Drain(&self) -> ::windows
::core
::Result
<()> {
265 (::windows
::core
::Interface
::vtable(self).Drain
)(::windows
::core
::Interface
::as_raw(self)).ok()
267 pub unsafe fn Reset(&self) -> ::windows
::core
::Result
<()> {
268 (::windows
::core
::Interface
::vtable(self).Reset
)(::windows
::core
::Interface
::as_raw(self)).ok()
271 ::windows
::imp
::interface_hierarchy
!(IDedupIterateChunksHash32
, ::windows
::core
::IUnknown
);
272 impl ::core
::cmp
::PartialEq
for IDedupIterateChunksHash32
{
273 fn eq(&self, other
: &Self) -> bool
{
277 impl ::core
::cmp
::Eq
for IDedupIterateChunksHash32 {}
278 impl ::core
::fmt
::Debug
for IDedupIterateChunksHash32
{
279 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
280 f
.debug_tuple("IDedupIterateChunksHash32").field(&self.0).finish()
283 unsafe impl ::windows
::core
::Interface
for IDedupIterateChunksHash32
{
284 type Vtable
= IDedupIterateChunksHash32_Vtbl
;
286 impl ::core
::clone
::Clone
for IDedupIterateChunksHash32
{
287 fn clone(&self) -> Self {
291 unsafe impl ::windows
::core
::ComInterface
for IDedupIterateChunksHash32
{
292 const IID
: ::windows
::core
::GUID
= ::windows
::core
::GUID
::from_u128(0x90b584d3_72aa_400f_9767_cad866a5a2d8);
296 pub struct IDedupIterateChunksHash32_Vtbl
{
297 pub base__
: ::windows
::core
::IUnknown_Vtbl
,
298 pub PushBuffer
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, pbuffer
: *const u8, ulbufferlength
: u32) -> ::windows
::core
::HRESULT
,
299 pub Next
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, ulmaxchunks
: u32, parrchunks
: *mut DEDUP_CHUNK_INFO_HASH32
, pulfetched
: *mut u32) -> ::windows
::core
::HRESULT
,
300 pub Drain
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
) -> ::windows
::core
::HRESULT
,
301 pub Reset
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
) -> ::windows
::core
::HRESULT
,
303 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
305 pub struct IDedupReadFileCallback(::windows
::core
::IUnknown
);
306 impl IDedupReadFileCallback
{
307 pub unsafe fn ReadBackupFile
<P0
>(&self, filefullpath
: P0
, fileoffset
: i64, filebuffer
: &mut [u8], returnedsize
: *mut u32, flags
: u32) -> ::windows
::core
::Result
<()>
309 P0
: ::windows
::core
::IntoParam
<::windows
::core
::BSTR
>,
311 (::windows
::core
::Interface
::vtable(self).ReadBackupFile
)(::windows
::core
::Interface
::as_raw(self), filefullpath
.into_param().abi(), fileoffset
, filebuffer
.len() as _
, ::core
::mem
::transmute(filebuffer
.as_ptr()), returnedsize
, flags
).ok()
313 pub unsafe fn OrderContainersRestore(&self, containerpaths
: &[::windows
::core
::BSTR
], readplanentries
: *mut u32, readplan
: *mut *mut DEDUP_CONTAINER_EXTENT
) -> ::windows
::core
::Result
<()> {
314 (::windows
::core
::Interface
::vtable(self).OrderContainersRestore
)(::windows
::core
::Interface
::as_raw(self), containerpaths
.len() as _
, ::core
::mem
::transmute(containerpaths
.as_ptr()), readplanentries
, readplan
).ok()
316 pub unsafe fn PreviewContainerRead
<P0
>(&self, filefullpath
: P0
, readoffsets
: &[DDP_FILE_EXTENT
]) -> ::windows
::core
::Result
<()>
318 P0
: ::windows
::core
::IntoParam
<::windows
::core
::BSTR
>,
320 (::windows
::core
::Interface
::vtable(self).PreviewContainerRead
)(::windows
::core
::Interface
::as_raw(self), filefullpath
.into_param().abi(), readoffsets
.len() as _
, ::core
::mem
::transmute(readoffsets
.as_ptr())).ok()
323 ::windows
::imp
::interface_hierarchy
!(IDedupReadFileCallback
, ::windows
::core
::IUnknown
);
324 impl ::core
::cmp
::PartialEq
for IDedupReadFileCallback
{
325 fn eq(&self, other
: &Self) -> bool
{
329 impl ::core
::cmp
::Eq
for IDedupReadFileCallback {}
330 impl ::core
::fmt
::Debug
for IDedupReadFileCallback
{
331 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
332 f
.debug_tuple("IDedupReadFileCallback").field(&self.0).finish()
335 unsafe impl ::windows
::core
::Interface
for IDedupReadFileCallback
{
336 type Vtable
= IDedupReadFileCallback_Vtbl
;
338 impl ::core
::clone
::Clone
for IDedupReadFileCallback
{
339 fn clone(&self) -> Self {
343 unsafe impl ::windows
::core
::ComInterface
for IDedupReadFileCallback
{
344 const IID
: ::windows
::core
::GUID
= ::windows
::core
::GUID
::from_u128(0x7bacc67a_2f1d_42d0_897e_6ff62dd533bb);
348 pub struct IDedupReadFileCallback_Vtbl
{
349 pub base__
: ::windows
::core
::IUnknown_Vtbl
,
350 pub ReadBackupFile
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, filefullpath
: ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>, fileoffset
: i64, sizetoread
: u32, filebuffer
: *mut u8, returnedsize
: *mut u32, flags
: u32) -> ::windows
::core
::HRESULT
,
351 pub OrderContainersRestore
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, numberofcontainers
: u32, containerpaths
: *const ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>, readplanentries
: *mut u32, readplan
: *mut *mut DEDUP_CONTAINER_EXTENT
) -> ::windows
::core
::HRESULT
,
352 pub PreviewContainerRead
: unsafe extern "system" fn(this
: *mut ::core
::ffi
::c_void
, filefullpath
: ::std
::mem
::MaybeUninit
<::windows
::core
::BSTR
>, numberofreads
: u32, readoffsets
: *const DDP_FILE_EXTENT
) -> ::windows
::core
::HRESULT
,
354 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
355 pub const DEDUP_CHUNKLIB_MAX_CHUNKS_ENUM
: u32 = 1024u32;
356 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
357 pub const DedupBackupSupport
: ::windows
::core
::GUID
= ::windows
::core
::GUID
::from_u128(0x73d6b2ad_2984_4715_b2e3_924c149744dd);
358 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
359 pub const DedupDataPort
: ::windows
::core
::GUID
= ::windows
::core
::GUID
::from_u128(0x8f107207_1829_48b2_a64b_e61f8e0d9acb);
360 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
362 #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
363 pub struct DEDUP_BACKUP_SUPPORT_PARAM_TYPE(pub i32);
364 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
365 pub const DEDUP_RECONSTRUCT_UNOPTIMIZED
: DEDUP_BACKUP_SUPPORT_PARAM_TYPE
= DEDUP_BACKUP_SUPPORT_PARAM_TYPE(1i32);
366 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
367 pub const DEDUP_RECONSTRUCT_OPTIMIZED
: DEDUP_BACKUP_SUPPORT_PARAM_TYPE
= DEDUP_BACKUP_SUPPORT_PARAM_TYPE(2i32);
368 impl ::core
::marker
::Copy
for DEDUP_BACKUP_SUPPORT_PARAM_TYPE {}
369 impl ::core
::clone
::Clone
for DEDUP_BACKUP_SUPPORT_PARAM_TYPE
{
370 fn clone(&self) -> Self {
374 impl ::core
::default::Default
for DEDUP_BACKUP_SUPPORT_PARAM_TYPE
{
375 fn default() -> Self {
379 impl ::windows
::core
::TypeKind
for DEDUP_BACKUP_SUPPORT_PARAM_TYPE
{
380 type TypeKind
= ::windows
::core
::CopyType
;
382 impl ::core
::fmt
::Debug
for DEDUP_BACKUP_SUPPORT_PARAM_TYPE
{
383 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
384 f
.debug_tuple("DEDUP_BACKUP_SUPPORT_PARAM_TYPE").field(&self.0).finish()
387 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
389 #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
390 pub struct DEDUP_SET_PARAM_TYPE(pub i32);
391 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
392 pub const DEDUP_PT_MinChunkSizeBytes
: DEDUP_SET_PARAM_TYPE
= DEDUP_SET_PARAM_TYPE(1i32);
393 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
394 pub const DEDUP_PT_MaxChunkSizeBytes
: DEDUP_SET_PARAM_TYPE
= DEDUP_SET_PARAM_TYPE(2i32);
395 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
396 pub const DEDUP_PT_AvgChunkSizeBytes
: DEDUP_SET_PARAM_TYPE
= DEDUP_SET_PARAM_TYPE(3i32);
397 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
398 pub const DEDUP_PT_InvariantChunking
: DEDUP_SET_PARAM_TYPE
= DEDUP_SET_PARAM_TYPE(4i32);
399 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
400 pub const DEDUP_PT_DisableStrongHashComputation
: DEDUP_SET_PARAM_TYPE
= DEDUP_SET_PARAM_TYPE(5i32);
401 impl ::core
::marker
::Copy
for DEDUP_SET_PARAM_TYPE {}
402 impl ::core
::clone
::Clone
for DEDUP_SET_PARAM_TYPE
{
403 fn clone(&self) -> Self {
407 impl ::core
::default::Default
for DEDUP_SET_PARAM_TYPE
{
408 fn default() -> Self {
412 impl ::windows
::core
::TypeKind
for DEDUP_SET_PARAM_TYPE
{
413 type TypeKind
= ::windows
::core
::CopyType
;
415 impl ::core
::fmt
::Debug
for DEDUP_SET_PARAM_TYPE
{
416 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
417 f
.debug_tuple("DEDUP_SET_PARAM_TYPE").field(&self.0).finish()
420 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
422 #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
423 pub struct DedupChunkFlags(pub i32);
424 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
425 pub const DedupChunkFlags_None
: DedupChunkFlags
= DedupChunkFlags(0i32);
426 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
427 pub const DedupChunkFlags_Compressed
: DedupChunkFlags
= DedupChunkFlags(1i32);
428 impl ::core
::marker
::Copy
for DedupChunkFlags {}
429 impl ::core
::clone
::Clone
for DedupChunkFlags
{
430 fn clone(&self) -> Self {
434 impl ::core
::default::Default
for DedupChunkFlags
{
435 fn default() -> Self {
439 impl ::windows
::core
::TypeKind
for DedupChunkFlags
{
440 type TypeKind
= ::windows
::core
::CopyType
;
442 impl ::core
::fmt
::Debug
for DedupChunkFlags
{
443 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
444 f
.debug_tuple("DedupChunkFlags").field(&self.0).finish()
447 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
449 #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
450 pub struct DedupChunkingAlgorithm(pub i32);
451 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
452 pub const DedupChunkingAlgorithm_Unknonwn
: DedupChunkingAlgorithm
= DedupChunkingAlgorithm(0i32);
453 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
454 pub const DedupChunkingAlgorithm_V1
: DedupChunkingAlgorithm
= DedupChunkingAlgorithm(1i32);
455 impl ::core
::marker
::Copy
for DedupChunkingAlgorithm {}
456 impl ::core
::clone
::Clone
for DedupChunkingAlgorithm
{
457 fn clone(&self) -> Self {
461 impl ::core
::default::Default
for DedupChunkingAlgorithm
{
462 fn default() -> Self {
466 impl ::windows
::core
::TypeKind
for DedupChunkingAlgorithm
{
467 type TypeKind
= ::windows
::core
::CopyType
;
469 impl ::core
::fmt
::Debug
for DedupChunkingAlgorithm
{
470 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
471 f
.debug_tuple("DedupChunkingAlgorithm").field(&self.0).finish()
474 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
476 #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
477 pub struct DedupCompressionAlgorithm(pub i32);
478 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
479 pub const DedupCompressionAlgorithm_Unknonwn
: DedupCompressionAlgorithm
= DedupCompressionAlgorithm(0i32);
480 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
481 pub const DedupCompressionAlgorithm_Xpress
: DedupCompressionAlgorithm
= DedupCompressionAlgorithm(1i32);
482 impl ::core
::marker
::Copy
for DedupCompressionAlgorithm {}
483 impl ::core
::clone
::Clone
for DedupCompressionAlgorithm
{
484 fn clone(&self) -> Self {
488 impl ::core
::default::Default
for DedupCompressionAlgorithm
{
489 fn default() -> Self {
493 impl ::windows
::core
::TypeKind
for DedupCompressionAlgorithm
{
494 type TypeKind
= ::windows
::core
::CopyType
;
496 impl ::core
::fmt
::Debug
for DedupCompressionAlgorithm
{
497 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
498 f
.debug_tuple("DedupCompressionAlgorithm").field(&self.0).finish()
501 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
503 #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
504 pub struct DedupDataPortManagerOption(pub i32);
505 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
506 pub const DedupDataPortManagerOption_None
: DedupDataPortManagerOption
= DedupDataPortManagerOption(0i32);
507 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
508 pub const DedupDataPortManagerOption_AutoStart
: DedupDataPortManagerOption
= DedupDataPortManagerOption(1i32);
509 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
510 pub const DedupDataPortManagerOption_SkipReconciliation
: DedupDataPortManagerOption
= DedupDataPortManagerOption(2i32);
511 impl ::core
::marker
::Copy
for DedupDataPortManagerOption {}
512 impl ::core
::clone
::Clone
for DedupDataPortManagerOption
{
513 fn clone(&self) -> Self {
517 impl ::core
::default::Default
for DedupDataPortManagerOption
{
518 fn default() -> Self {
522 impl ::windows
::core
::TypeKind
for DedupDataPortManagerOption
{
523 type TypeKind
= ::windows
::core
::CopyType
;
525 impl ::core
::fmt
::Debug
for DedupDataPortManagerOption
{
526 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
527 f
.debug_tuple("DedupDataPortManagerOption").field(&self.0).finish()
530 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
532 #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
533 pub struct DedupDataPortRequestStatus(pub i32);
534 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
535 pub const DedupDataPortRequestStatus_Unknown
: DedupDataPortRequestStatus
= DedupDataPortRequestStatus(0i32);
536 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
537 pub const DedupDataPortRequestStatus_Queued
: DedupDataPortRequestStatus
= DedupDataPortRequestStatus(1i32);
538 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
539 pub const DedupDataPortRequestStatus_Processing
: DedupDataPortRequestStatus
= DedupDataPortRequestStatus(2i32);
540 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
541 pub const DedupDataPortRequestStatus_Partial
: DedupDataPortRequestStatus
= DedupDataPortRequestStatus(3i32);
542 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
543 pub const DedupDataPortRequestStatus_Complete
: DedupDataPortRequestStatus
= DedupDataPortRequestStatus(4i32);
544 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
545 pub const DedupDataPortRequestStatus_Failed
: DedupDataPortRequestStatus
= DedupDataPortRequestStatus(5i32);
546 impl ::core
::marker
::Copy
for DedupDataPortRequestStatus {}
547 impl ::core
::clone
::Clone
for DedupDataPortRequestStatus
{
548 fn clone(&self) -> Self {
552 impl ::core
::default::Default
for DedupDataPortRequestStatus
{
553 fn default() -> Self {
557 impl ::windows
::core
::TypeKind
for DedupDataPortRequestStatus
{
558 type TypeKind
= ::windows
::core
::CopyType
;
560 impl ::core
::fmt
::Debug
for DedupDataPortRequestStatus
{
561 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
562 f
.debug_tuple("DedupDataPortRequestStatus").field(&self.0).finish()
565 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
567 #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
568 pub struct DedupDataPortVolumeStatus(pub i32);
569 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
570 pub const DedupDataPortVolumeStatus_Unknown
: DedupDataPortVolumeStatus
= DedupDataPortVolumeStatus(0i32);
571 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
572 pub const DedupDataPortVolumeStatus_NotEnabled
: DedupDataPortVolumeStatus
= DedupDataPortVolumeStatus(1i32);
573 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
574 pub const DedupDataPortVolumeStatus_NotAvailable
: DedupDataPortVolumeStatus
= DedupDataPortVolumeStatus(2i32);
575 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
576 pub const DedupDataPortVolumeStatus_Initializing
: DedupDataPortVolumeStatus
= DedupDataPortVolumeStatus(3i32);
577 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
578 pub const DedupDataPortVolumeStatus_Ready
: DedupDataPortVolumeStatus
= DedupDataPortVolumeStatus(4i32);
579 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
580 pub const DedupDataPortVolumeStatus_Maintenance
: DedupDataPortVolumeStatus
= DedupDataPortVolumeStatus(5i32);
581 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
582 pub const DedupDataPortVolumeStatus_Shutdown
: DedupDataPortVolumeStatus
= DedupDataPortVolumeStatus(6i32);
583 impl ::core
::marker
::Copy
for DedupDataPortVolumeStatus {}
584 impl ::core
::clone
::Clone
for DedupDataPortVolumeStatus
{
585 fn clone(&self) -> Self {
589 impl ::core
::default::Default
for DedupDataPortVolumeStatus
{
590 fn default() -> Self {
594 impl ::windows
::core
::TypeKind
for DedupDataPortVolumeStatus
{
595 type TypeKind
= ::windows
::core
::CopyType
;
597 impl ::core
::fmt
::Debug
for DedupDataPortVolumeStatus
{
598 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
599 f
.debug_tuple("DedupDataPortVolumeStatus").field(&self.0).finish()
602 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
604 #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
605 pub struct DedupHashingAlgorithm(pub i32);
606 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
607 pub const DedupHashingAlgorithm_Unknonwn
: DedupHashingAlgorithm
= DedupHashingAlgorithm(0i32);
608 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
609 pub const DedupHashingAlgorithm_V1
: DedupHashingAlgorithm
= DedupHashingAlgorithm(1i32);
610 impl ::core
::marker
::Copy
for DedupHashingAlgorithm {}
611 impl ::core
::clone
::Clone
for DedupHashingAlgorithm
{
612 fn clone(&self) -> Self {
616 impl ::core
::default::Default
for DedupHashingAlgorithm
{
617 fn default() -> Self {
621 impl ::windows
::core
::TypeKind
for DedupHashingAlgorithm
{
622 type TypeKind
= ::windows
::core
::CopyType
;
624 impl ::core
::fmt
::Debug
for DedupHashingAlgorithm
{
625 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
626 f
.debug_tuple("DedupHashingAlgorithm").field(&self.0).finish()
630 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
631 pub struct DDP_FILE_EXTENT
{
635 impl ::core
::marker
::Copy
for DDP_FILE_EXTENT {}
636 impl ::core
::clone
::Clone
for DDP_FILE_EXTENT
{
637 fn clone(&self) -> Self {
641 impl ::core
::fmt
::Debug
for DDP_FILE_EXTENT
{
642 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
643 f
.debug_struct("DDP_FILE_EXTENT").field("Length", &self.Length
).field("Offset", &self.Offset
).finish()
646 impl ::windows
::core
::TypeKind
for DDP_FILE_EXTENT
{
647 type TypeKind
= ::windows
::core
::CopyType
;
649 impl ::core
::cmp
::PartialEq
for DDP_FILE_EXTENT
{
650 fn eq(&self, other
: &Self) -> bool
{
651 self.Length
== other
.Length
&& self.Offset
== other
.Offset
654 impl ::core
::cmp
::Eq
for DDP_FILE_EXTENT {}
655 impl ::core
::default::Default
for DDP_FILE_EXTENT
{
656 fn default() -> Self {
657 unsafe { ::core::mem::zeroed() }
661 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
662 pub struct DEDUP_CHUNK_INFO_HASH32
{
664 pub ChunkOffsetInStream
: u64,
666 pub HashVal
: [u8; 32],
668 impl ::core
::marker
::Copy
for DEDUP_CHUNK_INFO_HASH32 {}
669 impl ::core
::clone
::Clone
for DEDUP_CHUNK_INFO_HASH32
{
670 fn clone(&self) -> Self {
674 impl ::core
::fmt
::Debug
for DEDUP_CHUNK_INFO_HASH32
{
675 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
676 f
.debug_struct("DEDUP_CHUNK_INFO_HASH32").field("ChunkFlags", &self.ChunkFlags
).field("ChunkOffsetInStream", &self.ChunkOffsetInStream
).field("ChunkSize", &self.ChunkSize
).field("HashVal", &self.HashVal
).finish()
679 impl ::windows
::core
::TypeKind
for DEDUP_CHUNK_INFO_HASH32
{
680 type TypeKind
= ::windows
::core
::CopyType
;
682 impl ::core
::cmp
::PartialEq
for DEDUP_CHUNK_INFO_HASH32
{
683 fn eq(&self, other
: &Self) -> bool
{
684 self.ChunkFlags
== other
.ChunkFlags
&& self.ChunkOffsetInStream
== other
.ChunkOffsetInStream
&& self.ChunkSize
== other
.ChunkSize
&& self.HashVal
== other
.HashVal
687 impl ::core
::cmp
::Eq
for DEDUP_CHUNK_INFO_HASH32 {}
688 impl ::core
::default::Default
for DEDUP_CHUNK_INFO_HASH32
{
689 fn default() -> Self {
690 unsafe { ::core::mem::zeroed() }
694 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
695 pub struct DEDUP_CONTAINER_EXTENT
{
696 pub ContainerIndex
: u32,
697 pub StartOffset
: i64,
700 impl ::core
::marker
::Copy
for DEDUP_CONTAINER_EXTENT {}
701 impl ::core
::clone
::Clone
for DEDUP_CONTAINER_EXTENT
{
702 fn clone(&self) -> Self {
706 impl ::core
::fmt
::Debug
for DEDUP_CONTAINER_EXTENT
{
707 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
708 f
.debug_struct("DEDUP_CONTAINER_EXTENT").field("ContainerIndex", &self.ContainerIndex
).field("StartOffset", &self.StartOffset
).field("Length", &self.Length
).finish()
711 impl ::windows
::core
::TypeKind
for DEDUP_CONTAINER_EXTENT
{
712 type TypeKind
= ::windows
::core
::CopyType
;
714 impl ::core
::cmp
::PartialEq
for DEDUP_CONTAINER_EXTENT
{
715 fn eq(&self, other
: &Self) -> bool
{
716 self.ContainerIndex
== other
.ContainerIndex
&& self.StartOffset
== other
.StartOffset
&& self.Length
== other
.Length
719 impl ::core
::cmp
::Eq
for DEDUP_CONTAINER_EXTENT {}
720 impl ::core
::default::Default
for DEDUP_CONTAINER_EXTENT
{
721 fn default() -> Self {
722 unsafe { ::core::mem::zeroed() }
726 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
727 pub struct DedupChunk
{
729 pub Flags
: DedupChunkFlags
,
730 pub LogicalSize
: u32,
733 impl ::core
::marker
::Copy
for DedupChunk {}
734 impl ::core
::clone
::Clone
for DedupChunk
{
735 fn clone(&self) -> Self {
739 impl ::core
::fmt
::Debug
for DedupChunk
{
740 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
741 f
.debug_struct("DedupChunk").field("Hash", &self.Hash
).field("Flags", &self.Flags
).field("LogicalSize", &self.LogicalSize
).field("DataSize", &self.DataSize
).finish()
744 impl ::windows
::core
::TypeKind
for DedupChunk
{
745 type TypeKind
= ::windows
::core
::CopyType
;
747 impl ::core
::cmp
::PartialEq
for DedupChunk
{
748 fn eq(&self, other
: &Self) -> bool
{
749 self.Hash
== other
.Hash
&& self.Flags
== other
.Flags
&& self.LogicalSize
== other
.LogicalSize
&& self.DataSize
== other
.DataSize
752 impl ::core
::cmp
::Eq
for DedupChunk {}
753 impl ::core
::default::Default
for DedupChunk
{
754 fn default() -> Self {
755 unsafe { ::core::mem::zeroed() }
759 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
760 pub struct DedupHash
{
763 impl ::core
::marker
::Copy
for DedupHash {}
764 impl ::core
::clone
::Clone
for DedupHash
{
765 fn clone(&self) -> Self {
769 impl ::core
::fmt
::Debug
for DedupHash
{
770 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
771 f
.debug_struct("DedupHash").field("Hash", &self.Hash
).finish()
774 impl ::windows
::core
::TypeKind
for DedupHash
{
775 type TypeKind
= ::windows
::core
::CopyType
;
777 impl ::core
::cmp
::PartialEq
for DedupHash
{
778 fn eq(&self, other
: &Self) -> bool
{
779 self.Hash
== other
.Hash
782 impl ::core
::cmp
::Eq
for DedupHash {}
783 impl ::core
::default::Default
for DedupHash
{
784 fn default() -> Self {
785 unsafe { ::core::mem::zeroed() }
789 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
790 pub struct DedupStream
{
791 pub Path
: ::std
::mem
::ManuallyDrop
<::windows
::core
::BSTR
>,
796 impl ::core
::clone
::Clone
for DedupStream
{
797 fn clone(&self) -> Self {
798 unsafe { ::core::mem::transmute_copy(self) }
801 impl ::core
::fmt
::Debug
for DedupStream
{
802 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
803 f
.debug_struct("DedupStream").field("Path", &self.Path
).field("Offset", &self.Offset
).field("Length", &self.Length
).field("ChunkCount", &self.ChunkCount
).finish()
806 impl ::windows
::core
::TypeKind
for DedupStream
{
807 type TypeKind
= ::windows
::core
::CopyType
;
809 impl ::core
::cmp
::PartialEq
for DedupStream
{
810 fn eq(&self, other
: &Self) -> bool
{
811 self.Path
== other
.Path
&& self.Offset
== other
.Offset
&& self.Length
== other
.Length
&& self.ChunkCount
== other
.ChunkCount
814 impl ::core
::cmp
::Eq
for DedupStream {}
815 impl ::core
::default::Default
for DedupStream
{
816 fn default() -> Self {
817 unsafe { ::core::mem::zeroed() }
821 #[doc = "*Required features: `\"Win32_Storage_DataDeduplication\"`*"]
822 pub struct DedupStreamEntry
{
824 pub LogicalSize
: u32,
827 impl ::core
::marker
::Copy
for DedupStreamEntry {}
828 impl ::core
::clone
::Clone
for DedupStreamEntry
{
829 fn clone(&self) -> Self {
833 impl ::core
::fmt
::Debug
for DedupStreamEntry
{
834 fn fmt(&self, f
: &mut ::core
::fmt
::Formatter
<'_
>) -> ::core
::fmt
::Result
{
835 f
.debug_struct("DedupStreamEntry").field("Hash", &self.Hash
).field("LogicalSize", &self.LogicalSize
).field("Offset", &self.Offset
).finish()
838 impl ::windows
::core
::TypeKind
for DedupStreamEntry
{
839 type TypeKind
= ::windows
::core
::CopyType
;
841 impl ::core
::cmp
::PartialEq
for DedupStreamEntry
{
842 fn eq(&self, other
: &Self) -> bool
{
843 self.Hash
== other
.Hash
&& self.LogicalSize
== other
.LogicalSize
&& self.Offset
== other
.Offset
846 impl ::core
::cmp
::Eq
for DedupStreamEntry {}
847 impl ::core
::default::Default
for DedupStreamEntry
{
848 fn default() -> Self {
849 unsafe { ::core::mem::zeroed() }
852 #[cfg(feature = "implement")]
853 ::core
::include
!("impl.rs");