utils.h 664 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <windows.h>
  3. #include <stdint.h>
  4. #define UTILS_COUNT(arr) (sizeof(arr) / sizeof(*(arr)))
  5. struct file_mapping {
  6. HANDLE file;
  7. HANDLE mapping;
  8. unsigned char *data;
  9. };
  10. void utils_map_file(const wchar_t *path, struct file_mapping *map);
  11. void utils_unmap_file(struct file_mapping *map);
  12. int utils_path_exists(const wchar_t *path);
  13. uint32_t utils_file_crc32c(const wchar_t *path);
  14. void utils_create_parent_dirs(const wchar_t *path);
  15. void utils_save_to_file(const wchar_t *path, const void *buf, size_t length);
  16. char utils_env_enabled(const char *env);
  17. void utils_write_protected_memory(void *addr, const void *buf, size_t size);