@@ -382,6 +382,8 @@ HRESULT FileFind::Match::Write(ITableOutput& output)
382
382
383
383
output.WriteGUID (SnapshotID);
384
384
385
+ output.WriteBool (!DeletedRecord);
386
+
385
387
output.WriteEndOfLine ();
386
388
}
387
389
}
@@ -424,6 +426,8 @@ HRESULT FileFind::Match::Write(ITableOutput& output)
424
426
425
427
output.WriteGUID (SnapshotID);
426
428
429
+ output.WriteBool (!DeletedRecord);
430
+
427
431
output.WriteEndOfLine ();
428
432
}
429
433
}
@@ -443,6 +447,7 @@ HRESULT FileFind::Match::Write(IStructuredOutput& pWriter, LPCWSTR szElement)
443
447
{
444
448
LARGE_INTEGER* pLI = (LARGE_INTEGER*)&FRN;
445
449
pWriter.WriteNamed (L" frn" , (ULONGLONG)pLI->QuadPart , true );
450
+ pWriter.WriteNamed (L" record_in_use" , DeletedRecord ? " N" : " Y" , true );
446
451
447
452
pWriter.WriteNamed (L" volume_id" , VolumeReader->VolumeSerialNumber (), true );
448
453
@@ -4285,7 +4290,11 @@ HRESULT FileFind::ExcludeMatch(const std::shared_ptr<Match>& aMatch)
4285
4290
return S_FALSE;
4286
4291
}
4287
4292
4288
- HRESULT FileFind::Find (const LocationSet& locations, FileFind::FoundMatchCallback aCallback, bool bParseI30Data)
4293
+ HRESULT FileFind::Find (
4294
+ const LocationSet& locations,
4295
+ FileFind::FoundMatchCallback aCallback,
4296
+ bool bParseI30Data,
4297
+ bool bResurrectRecords)
4289
4298
{
4290
4299
HRESULT hr = E_FAIL;
4291
4300
@@ -4319,7 +4328,7 @@ HRESULT FileFind::Find(const LocationSet& locations, FileFind::FoundMatchCallbac
4319
4328
4320
4329
m_pVolReader = aLoc->GetReader ();
4321
4330
4322
- if (FAILED (hr = walk.Initialize (aLoc, false )))
4331
+ if (FAILED (hr = walk.Initialize (aLoc, bResurrectRecords )))
4323
4332
{
4324
4333
if (hr == HRESULT_FROM_WIN32 (ERROR_FILE_SYSTEM_LIMITATION))
4325
4334
{
0 commit comments