Subversion Repositories recyclebinunit

Rev

Rev 76 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
75 daniel-mar 1
unit RecBinUnitLowLvl;
2
 
3
// TODO: Gain more information about drive '@' / Homedrive / Netdrive? Win2000 source
4
//       + überall verwenden
5
 
6
interface
7
 
8
uses
9
  Windows;
10
 
11
type
12
  TRbInfo12Header = record
13
    unknown1: DWORD; // For INFO2 always 05 00 00 00 ?
14
    unknown2: DWORD; // For INFO2 always 00 00 00 00 ?
15
    unknown3: DWORD; // For INFO2 always 00 00 00 00 ?
16
    recordLength: DWORD; // 0x181  =  INFO  structure (without Unicode)
17
                         // 0x320  =  INFO2 structure (with Unicode)
18
    totalSize: DWORD; // INFO file: sum of all "originalSize" values
19
                      // INFO2 file: always zero?
20
  end;
21
 
22
type
23
  TRbInfoRecord = record
24
    sourceAnsi: array[0..MAX_PATH-3] of AnsiChar; // 258 elements
25
    recordNumber: DWORD;
26
    sourceDrive: DWORD;
27
    deletionTime: FILETIME;
28
    originalSize: DWORD; // Size occupied on disk. Not the actual file size.
29
                         // INFO2, for folders: The whole folder size with contents 
30
  end;
31
 
32
type
33
  TRbInfo2Record = record
34
    sourceAnsi: array[0..MAX_PATH-3] of AnsiChar; // 258 elements
35
    recordNumber: DWORD;
36
    sourceDrive: DWORD;
37
    deletionTime: FILETIME;
38
    originalSize: DWORD;
39
    sourceUnicode: array[0..MAX_PATH-3] of WideChar; // 258 elements
40
    unknown1: DWORD; // Dummy?
41
  end;
42
 
43
type
44
  TRbVistaRecord = record
45
    signature: int64; // Always 01 00 00 00 00 00 00 00 ?
46
    originalSize: int64;
47
    deletionTime: FILETIME;
48
    sourceUnicode: array[0..MAX_PATH-1] of WideChar;
49
  end;
50
 
51
type
52
  // Windows 95
53
  // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\BitBucket: PurgeInfo (Binary)
54
  TRbWin95PurgeInfo = record
55
    cbSize: DWORD;
56
    bGlobalSettings: BOOL;
57
    percentDrive: array['A'..'Z'] of WORD; // 0x00..0x64 = 0%..100%
58
    percentHomedrive: WORD;
59
    percentGlobal: WORD;
60
    NukeOnDeleteBits: DWORD; // Flags "Nuke on delete"
61
                             // Bit 0 (LSB): Drive A
62
                             // Bit 1: Drive B
63
                             // ...
64
                             // Bit 25: Drive Z
65
                             // Bit 26: Homedrive
66
                             // Bit 27: Global
67
                             // Bit 28..31 (MSB) probably unused
68
    unknown1: DWORD; // For example 04 0D 02 00
69
  end;               // or          C4 0C 02 00
70
 
71
implementation
72
 
73
end.