Files
Ares-mythic/ares/offreg.h
Aryma e14b1f21eb refactor: rename project directory from hummer to ares
This is a major rename of the project directory structure from "hummer" to "ares". All project files including source code, headers, resources, build files, and documentation have been moved to the new directory while maintaining their content. The change includes updating Visual Studio solution and project files to reflect the new directory name.
2026-04-14 13:51:26 +07:00

240 lines
5.2 KiB
C

/*++
Copyright (c) Microsoft Corporation
Module Name:
offreg.h
Abstract:
This module contains the header file for the
offreg utility.
--*/
#pragma once
#ifndef __OFFREG_H__
#define __OFFREG_H__
#ifdef __cplusplus
extern "C"
{
#endif
#if defined(OFFREG_DLL)
#define ORAPI _declspec(dllexport) __stdcall
#else
#define ORAPI _declspec(dllimport) __stdcall
#endif
typedef PVOID ORHKEY;
typedef ORHKEY* PORHKEY;
VOID
ORAPI
ORGetVersion(
_Out_ PDWORD pdwMajorVersion,
_Out_ PDWORD pdwMinorVersion
);
DWORD
ORAPI
OROpenHive(
_In_ PCWSTR FilePath,
_Out_ PORHKEY HORKey
);
DWORD
ORAPI
OROpenHiveByHandle(
_In_ HANDLE FileHandle,
_Out_ PORHKEY HORKey
);
DWORD
ORAPI
ORCreateHive(
_Out_ PORHKEY HORKey
);
DWORD
ORAPI
ORCloseHive(
_In_ ORHKEY Handle
);
DWORD
ORAPI
ORSaveHive(
_In_ ORHKEY HORKey,
_In_ PCWSTR HivePath,
_In_ DWORD OsMajorVersion,
_In_ DWORD OsMinorVersion
);
DWORD
ORAPI
OROpenKey(
_In_ ORHKEY Handle,
_In_opt_ PCWSTR lpSubKey,
_Out_ PORHKEY phkResult
);
DWORD
ORAPI
ORCloseKey(
_In_ ORHKEY KeyHandle
);
DWORD
ORAPI
ORCreateKey(
_In_ ORHKEY KeyHandle,
_In_ PCWSTR lpSubKey,
_In_opt_ PWSTR lpClass,
_In_opt_ DWORD dwOptions,
_In_opt_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_Out_ PORHKEY phkResult,
_Out_opt_ PDWORD pdwDisposition
);
DWORD
ORAPI
ORDeleteKey(
_In_ ORHKEY Handle,
_In_opt_ PCWSTR lpSubKey
);
DWORD
ORAPI
ORQueryInfoKey(
_In_ ORHKEY Handle,
_Out_writes_opt_(*lpcClass) PWSTR lpClass,
_Inout_opt_ PDWORD lpcClass,
_Out_opt_ PDWORD lpcSubKeys,
_Out_opt_ PDWORD lpcMaxSubKeyLen,
_Out_opt_ PDWORD lpcMaxClassLen,
_Out_opt_ PDWORD lpcValues,
_Out_opt_ PDWORD lpcMaxValueNameLen,
_Out_opt_ PDWORD lpcMaxValueLen,
_Out_opt_ PDWORD lpcbSecurityDescriptor,
_Out_opt_ PFILETIME lpftLastWriteTime
);
DWORD
ORAPI
OREnumKey(
_In_ ORHKEY Handle,
_In_ DWORD dwIndex,
_Out_writes_(*lpcName) PWSTR lpName,
_Inout_ PDWORD lpcName,
_Out_writes_opt_(*lpcClass) PWSTR lpClass,
_Inout_opt_ PDWORD lpcClass,
_Out_opt_ PFILETIME lpftLastWriteTime
);
DWORD
ORAPI
ORGetKeySecurity(
_In_ ORHKEY Handle,
_In_ SECURITY_INFORMATION SecurityInformation,
_Out_opt_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_Inout_ PDWORD lpcbSecurityDescriptor
);
DWORD
ORAPI
ORSetKeySecurity(
_In_ ORHKEY Handle,
_In_ SECURITY_INFORMATION SecurityInformation,
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor
);
DWORD
ORAPI
ORGetVirtualFlags(
_In_ ORHKEY Handle,
_Out_ PDWORD pdwFlags
);
DWORD
ORAPI
ORSetVirtualFlags(
_In_ ORHKEY Handle,
_In_ DWORD dwFlags
);
DWORD
ORAPI
ORDeleteValue(
_In_ ORHKEY Handle,
_In_opt_ PCWSTR lpValueName
);
DWORD
ORAPI
ORGetValue(
_In_ ORHKEY Handle,
_In_opt_ PCWSTR lpSubKey,
_In_opt_ PCWSTR lpValue,
_Out_opt_ PDWORD pdwType,
_Out_writes_bytes_opt_(*pcbData) PVOID pvData,
_Inout_opt_ PDWORD pcbData
);
DWORD
ORAPI
ORSetValue(
_In_ ORHKEY Handle,
_In_opt_ PCWSTR lpValueName,
_In_ DWORD dwType,
_In_reads_bytes_opt_(cbData) const BYTE* lpData,
_In_ DWORD cbData
);
DWORD
ORAPI
OREnumValue(
_In_ ORHKEY Handle,
_In_ DWORD dwIndex,
_Out_writes_(*lpcValueName) PWSTR lpValueName,
_Inout_ PDWORD lpcValueName,
_Out_opt_ PDWORD lpType,
_Out_writes_bytes_opt_(*lpcbData) PBYTE lpData,
_Inout_opt_ PDWORD lpcbData
);
DWORD
ORAPI
ORRenameKey(
_In_ ORHKEY Handle,
_In_ PCWSTR lpNewName
);
DWORD
ORStart(
VOID
);
VOID
ORShutdown(
VOID
);
DWORD
ORAPI
ORMergeHives(
_In_reads_(HiveCount) ORHKEY* HiveHandles,
_In_ ULONG HiveCount,
_Out_ PORHKEY phkResult
);
#ifdef __cplusplus
}
#endif
#endif //__OFFREG_H__