int main(int arbc, char *argv[]) { DWORD ret = ERROR_GEN_FAILURE; CFileSystemObject *root = NULL; ret = UtilsModuleInit(); if (ret == ERROR_SUCCESS) { ret = AdjustPrivilege(L"SeBackupPrivilege"); if (ret == ERROR_SUCCESS) { ret = AdjustPrivilege(L"SeRestorePrivilege"); if (ret == ERROR_SUCCESS) { HANDLE rootHandle = NULL; std::wstring rootPath = L"\\??\\C:\\"; ret = _OpenDirectoryName(NULL, rootPath, &rootHandle); if (ret == ERROR_SUCCESS) { root = new CFileSystemObject(rootPath, 0, 0); ret = _BuildTreeLevel(rootHandle, *root); _ScanFileIds(L"\\\\.\\C:", *root); CloseHandle(rootHandle); PrintLevel(L"", *root); } } } UtilsModuleFinit(); } return (int)ret; }
inline NTSTATUS DisablePrivilege(ULONG privilege) { return AdjustPrivilege(false, privilege); }
inline NTSTATUS EnablePrivilege(ULONG privilege) { return AdjustPrivilege(true, privilege); }