Reactos

[SFCFILES] Add sfcfiles dll and header file

Sfcfiles.dll contains only a short list of protected files (WIP).

+101
+1
dll/win32/CMakeLists.txt
··· 184 184 add_subdirectory(setupapi) 185 185 add_subdirectory(sfc) 186 186 add_subdirectory(sfc_os) 187 + add_subdirectory(sfcfiles) 187 188 add_subdirectory(shdoclc) 188 189 add_subdirectory(shdocvw) 189 190 add_subdirectory(shell32)
+10
dll/win32/sfcfiles/CMakeLists.txt
··· 1 + spec2def(sfcfiles.dll sfcfiles.spec) 2 + 3 + list(APPEND SOURCE 4 + sfcfiles.c 5 + ${CMAKE_CURRENT_BINARY_DIR}/sfcfiles.def) 6 + 7 + add_library(sfcfiles MODULE ${SOURCE}) 8 + set_module_type(sfcfiles win32dll) 9 + add_importlibs(sfcfiles msvcrt kernel32 ntdll) 10 + add_cd_file(TARGET sfcfiles DESTINATION reactos/system32 FOR all)
+59
dll/win32/sfcfiles/sfcfiles.c
··· 1 + /* 2 + * PROJECT: ReactOS System File Checker 3 + * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) 4 + * FILE: dll/win32/sfcfiles/sfcfiles.c 5 + * PURPOSE: List of protected files 6 + * PROGRAMMERS: Copyright 2022 Eric Kohl (eric.kohl@reactos.org) 7 + */ 8 + 9 + #define WIN32_NO_STATUS 10 + #include <windef.h> 11 + #include <winbase.h> 12 + #include <ndk/umtypes.h> 13 + #include <sfcfiles.h> 14 + 15 + 16 + static 17 + PROTECT_FILE_ENTRY 18 + ProtectedFiles[] = 19 + { 20 + {NULL, L"%systemroot%\\system32\\advapi32.dll", NULL}, 21 + {NULL, L"%systemroot%\\system32\\comctl32.dll", NULL}, 22 + {NULL, L"%systemroot%\\system32\\comdlg32.dll", NULL}, 23 + {NULL, L"%systemroot%\\system32\\kernel32.dll", NULL}, 24 + {NULL, L"%systemroot%\\system32\\ntdll.dll", NULL}, 25 + {NULL, L"%systemroot%\\system32\\ntoskrnl.exe", NULL} 26 + }; 27 + 28 + 29 + BOOL 30 + WINAPI 31 + DllMain( 32 + _In_ HINSTANCE hInstDLL, 33 + _In_ DWORD fdwReason, 34 + _In_ LPVOID lpvReserved) 35 + { 36 + switch (fdwReason) 37 + { 38 + case DLL_PROCESS_ATTACH: 39 + DisableThreadLibraryCalls(hInstDLL); 40 + break; 41 + 42 + case DLL_PROCESS_DETACH: 43 + break; 44 + } 45 + 46 + return TRUE; 47 + } 48 + 49 + 50 + NTSTATUS 51 + WINAPI 52 + SfcGetFiles( 53 + _Out_ PPROTECT_FILE_ENTRY *ProtFileData, 54 + _Out_ PULONG FileCount) 55 + { 56 + *ProtFileData = ProtectedFiles; 57 + *FileCount = ARRAYSIZE(ProtectedFiles); 58 + return STATUS_SUCCESS; 59 + }
+5
dll/win32/sfcfiles/sfcfiles.rc
··· 1 + #define REACTOS_VERSION_DLL 2 + #define REACTOS_STR_FILE_DESCRIPTION "System File Checker Files" 3 + #define REACTOS_STR_INTERNAL_NAME "sfcfiles" 4 + #define REACTOS_STR_ORIGINAL_FILENAME "sfcfiles.dll" 5 + #include <reactos/version.rc>
+1
dll/win32/sfcfiles/sfcfiles.spec
··· 1 + @ stdcall SfcGetFiles(ptr ptr)
+25
sdk/include/psdk/sfcfiles.h
··· 1 + #ifndef __SFCFILES_H 2 + #define __SFCFILES_H 3 + 4 + #ifdef __cplusplus 5 + extern "C" { 6 + #endif 7 + 8 + typedef struct _PROTECT_FILE_ENTRY 9 + { 10 + PWSTR SourceFileName; 11 + PWSTR FileName; 12 + PWSTR InfName; 13 + } PROTECT_FILE_ENTRY, *PPROTECT_FILE_ENTRY; 14 + 15 + NTSTATUS 16 + WINAPI 17 + SfcGetFiles( 18 + _Out_ PPROTECT_FILE_ENTRY *ProtFileData, 19 + _Out_ PULONG FileCount); 20 + 21 + #ifdef __cplusplus 22 + } 23 + #endif 24 + 25 + #endif