/* Copyright (c) 2008 TrueCrypt Developers Association. All rights reserved. Governed by the TrueCrypt License 3.0 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution packages. */ #ifndef TC_HEADER_Platform_SerializerFactory #define TC_HEADER_Platform_SerializerFactory #include #include "PlatformBase.h" #include "StringConverter.h" namespace VeraCrypt { class Serializable; class SerializerFactory { public: ~SerializerFactory (); static void Deinitialize (); static string GetName (const type_info &typeInfo); static Serializable *GetNewSerializable (const string &typeName); static void Initialize (); struct MapEntry { MapEntry () { } MapEntry (const string &typeName, Serializable* (*getNewPtr) ()) : TypeName (typeName), GetNewPtr (getNewPtr) { } MapEntry &operator= (const MapEntry &right) { TypeName = right.TypeName; GetNewPtr = right.GetNewPtr; return *this; } string TypeName; Serializable* (*GetNewPtr) (); }; static map *NameToTypeMap; static map *TypeToNameMap; protected: SerializerFactory (); static int UseCount; }; } #define TC_SERIALIZER_FACTORY_ADD_EXCEPTION_SET(TYPE) \ struct TYPE##SerializerFactoryInitializer \ { \ TYPE##SerializerFactoryInitializer () \ { \ SerializerFactory::Initialize(); \ TC_EXCEPTION_SET; \ } \ ~TYPE##SerializerFactoryInitializer () \ { \ SerializerFactory::Deinitialize(); \ } \ }; \ static TYPE##SerializerFactoryInitializer TYPE##SerializerFactoryInitializer #define TC_SERIALIZER_FACTORY_ADD_CLASS(TYPE) \ struct TYPE##SerializerFactoryInitializer \ { \ TYPE##SerializerFactoryInitializer () \ { \ SerializerFactory::Initialize(); \ TC_SERIALIZER_FACTORY_ADD (TYPE); \ } \ ~TYPE##SerializerFactoryInitializer () \ { \ SerializerFactory::Deinitialize(); \ } \ }; \ static TYPE##SerializerFactoryInitializer TYPE##SerializerFactoryInitializerInst #define TC_SERIALIZER_FACTORY_ADD(TYPE) \ (*SerializerFactory::NameToTypeMap)[#TYPE] = SerializerFactory::MapEntry (StringConverter::GetTypeName (typeid (TYPE)), &TYPE::GetNewSerializable); \ (*SerializerFactory::TypeToNameMap)[StringConverter::GetTypeName (typeid (TYPE))] = #TYPE #endif // TC_HEADER_Platform_SerializerFactory value='grep'>log msg
blob: 7fa38aa17ab3e464cf273ac9f51be4b03440bb8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
;;;
;;; VeraCrypt
;;;
;;;
;;; Copyright (c) 2022, IDRIX
;;;

[Version]
signature   = "$Windows NT$"
Class       = "Encryption"                              ;This is determined by the work this filter driver does
ClassGuid   = {a0a701c0-a511-42ff-aa6c-06dc0395576f}    ;This value is determined by the Class
Provider    = %ProviderString%
DriverVer   = 02/05/2022,1.25.8.0
CatalogFile = veracrypt.cat


[DestinationDirs]
DefaultDestDir          = 12
veracrypt.DriverFiles  = 12            ;%windir%\system32\drivers

;;
;; Default install sections
;;

[DefaultInstall]
OptionDesc          = %ServiceDescription%
CopyFiles           = veracrypt.DriverFiles
AddReg              = veracrypt.AddReg

[DefaultInstall.Services]
AddService          = veracrypt,,veracrypt.Service

;;
;; Default uninstall sections
;;

[DefaultUninstall]
DelFiles   = veracrypt.DriverFiles

[DefaultUninstall.Services]
DelService = veracrypt,0x200      ;Ensure service is stopped before deleting

;
; Services Section
;

[veracrypt.Service]
DisplayName      = %ServiceDescription%
Description      = %ServiceDescription%
ServiceBinary    = %12%\veracrypt.sys        ;%windir%\system32\drivers\
ServiceType      = 2                            ;SERVICE_FILE_SYSTEM_DRIVER
StartType        = 0                           ;SERVICE_BOOT_START
ErrorControl     = 1                            ;SERVICE_ERROR_NORMAL
LoadOrderGroup   = "Filter"

;
; Copy Files
;

[veracrypt.DriverFiles]
veracrypt.sys

[SourceDisksFiles]
veracrypt.sys = 1,,

[SourceDisksNames]
1 = %DiskId1%,,,

;
; Registry Entries
;

[veracrypt.AddReg]
HKLM, System\CurrentControlSet\Control\Class\{4d36e967-e325-11ce-bfc1-08002be10318}, UpperFilters, 0x00010008, veracrypt
HKLM, System\CurrentControlSet\Control\Class\{4d36e967-e325-11ce-bfc1-08002be10318}, UpperFilters, 0x00010008, PartMgr

;;
;; String Section
;;

[Strings]
ProviderString          = "IDRIX"
ServiceDescription      = "veracrypt"
DiskId1                 = "VeraCrypt Device Installation Disk"