2016-07-21 23:02:31 +00:00
|
|
|
#pragma once
|
|
|
|
|
2016-09-11 11:39:12 +00:00
|
|
|
typedef unsigned long long HidStatus;
|
2016-07-21 23:02:31 +00:00
|
|
|
|
2016-09-11 11:39:12 +00:00
|
|
|
#define HID_STATUS_SUCCESSFUL(status) (status & 1)
|
|
|
|
#define HID_STATUS_CODE(status) (unsigned int)(status >> 1)
|
2016-07-21 23:02:31 +00:00
|
|
|
|
2016-09-22 20:17:12 +00:00
|
|
|
#define HID_SET_STATUS(state, code) (unsigned long long)((unsigned long long)code << 1 | (state ? 1 : 0))
|
2016-07-21 23:02:31 +00:00
|
|
|
|
2016-12-25 20:56:18 +00:00
|
|
|
#define HID_NORMALIZATION_OVERHEAD 100
|
|
|
|
|
2016-10-15 15:10:35 +00:00
|
|
|
#define _API __cdecl
|
|
|
|
|
2016-07-21 23:02:31 +00:00
|
|
|
typedef void* HidContext;
|
|
|
|
typedef HidContext* PHidContext;
|
|
|
|
|
|
|
|
typedef unsigned long long HidObjId;
|
|
|
|
|
2016-09-04 19:00:48 +00:00
|
|
|
typedef unsigned long HidProcId;
|
|
|
|
|
2021-07-25 18:32:03 +00:00
|
|
|
enum class HidActiveState
|
2016-09-04 19:00:48 +00:00
|
|
|
{
|
|
|
|
StateDisabled = 0,
|
|
|
|
StateEnabled
|
|
|
|
};
|
|
|
|
|
2016-09-22 20:17:12 +00:00
|
|
|
// Important note:
|
|
|
|
// This enum should be equal to PsRuleInheritTypes (PsRules.h)
|
2021-07-25 18:32:03 +00:00
|
|
|
enum class HidPsInheritTypes
|
2016-09-04 19:00:48 +00:00
|
|
|
{
|
|
|
|
WithoutInherit = 0,
|
|
|
|
InheritAlways,
|
|
|
|
InheritOnce,
|
|
|
|
InheritMax
|
|
|
|
};
|
|
|
|
|
2021-07-25 18:32:03 +00:00
|
|
|
enum class HidRegRootTypes
|
2016-09-18 14:25:58 +00:00
|
|
|
{
|
|
|
|
RegHKCU,
|
|
|
|
RegHKLM,
|
|
|
|
RegHKU
|
|
|
|
};
|
|
|
|
|
2016-12-25 20:56:18 +00:00
|
|
|
HidStatus _API Hid_InitializeWithNoConnection();
|
2016-10-15 15:10:35 +00:00
|
|
|
HidStatus _API Hid_Initialize(PHidContext pcontext, const wchar_t* deviceName = 0);
|
|
|
|
void _API Hid_Destroy(HidContext context);
|
2016-07-21 23:02:31 +00:00
|
|
|
|
2016-10-15 15:10:35 +00:00
|
|
|
HidStatus _API Hid_SetState(HidContext context, HidActiveState state);
|
|
|
|
HidStatus _API Hid_GetState(HidContext context, HidActiveState* pstate);
|
2016-09-04 19:00:48 +00:00
|
|
|
|
|
|
|
// Fs\Reg
|
2016-07-21 23:02:31 +00:00
|
|
|
|
2016-10-15 15:10:35 +00:00
|
|
|
HidStatus _API Hid_AddHiddenRegKey(HidContext context, HidRegRootTypes root, const wchar_t* regKey, HidObjId* objId);
|
|
|
|
HidStatus _API Hid_RemoveHiddenRegKey(HidContext context, HidObjId objId);
|
|
|
|
HidStatus _API Hid_RemoveAllHiddenRegKeys(HidContext context);
|
2016-07-21 23:02:31 +00:00
|
|
|
|
2016-10-15 15:10:35 +00:00
|
|
|
HidStatus _API Hid_AddHiddenRegValue(HidContext context, HidRegRootTypes root, const wchar_t* regValue, HidObjId* objId);
|
|
|
|
HidStatus _API Hid_RemoveHiddenRegValue(HidContext context, HidObjId objId);
|
|
|
|
HidStatus _API Hid_RemoveAllHiddenRegValues(HidContext context);
|
2016-07-21 23:02:31 +00:00
|
|
|
|
2016-10-15 15:10:35 +00:00
|
|
|
HidStatus _API Hid_AddHiddenFile(HidContext context, const wchar_t* filePath, HidObjId* objId);
|
|
|
|
HidStatus _API Hid_RemoveHiddenFile(HidContext context, HidObjId objId);
|
|
|
|
HidStatus _API Hid_RemoveAllHiddenFiles(HidContext context);
|
2016-07-21 23:02:31 +00:00
|
|
|
|
2016-10-15 15:10:35 +00:00
|
|
|
HidStatus _API Hid_AddHiddenDir(HidContext context, const wchar_t* dirPath, HidObjId* objId);
|
|
|
|
HidStatus _API Hid_RemoveHiddenDir(HidContext context, HidObjId objId);
|
|
|
|
HidStatus _API Hid_RemoveAllHiddenDirs(HidContext context);
|
2016-09-04 19:00:48 +00:00
|
|
|
|
|
|
|
// Ps
|
|
|
|
|
2016-10-18 21:28:55 +00:00
|
|
|
HidStatus _API Hid_AddExcludedImage(HidContext context, const wchar_t* imagePath, HidPsInheritTypes inheritType, bool applyForProcess, HidObjId* objId);
|
2016-10-15 15:10:35 +00:00
|
|
|
HidStatus _API Hid_RemoveExcludedImage(HidContext context, HidObjId objId);
|
|
|
|
HidStatus _API Hid_RemoveAllExcludedImages(HidContext context);
|
|
|
|
HidStatus _API Hid_GetExcludedState(HidContext context, HidProcId procId, HidActiveState* state, HidPsInheritTypes* inheritType);
|
|
|
|
HidStatus _API Hid_AttachExcludedState(HidContext context, HidProcId procId, HidPsInheritTypes inheritType);
|
|
|
|
HidStatus _API Hid_RemoveExcludedState(HidContext context, HidProcId procId);
|
|
|
|
|
2016-10-18 21:28:55 +00:00
|
|
|
HidStatus _API Hid_AddProtectedImage(HidContext context, const wchar_t* imagePath, HidPsInheritTypes inheritType, bool applyForProcess, HidObjId* objId);
|
2016-10-15 15:10:35 +00:00
|
|
|
HidStatus _API Hid_RemoveProtectedImage(HidContext context, HidObjId objId);
|
|
|
|
HidStatus _API Hid_RemoveAllProtectedImages(HidContext context);
|
|
|
|
HidStatus _API Hid_GetProtectedState(HidContext context, HidProcId procId, HidActiveState* state, HidPsInheritTypes* inheritType);
|
|
|
|
HidStatus _API Hid_AttachProtectedState(HidContext context, HidProcId procId, HidPsInheritTypes inheritType);
|
|
|
|
HidStatus _API Hid_RemoveProtectedState(HidContext context, HidProcId procId);
|
2016-12-25 20:56:18 +00:00
|
|
|
|
2021-07-25 18:32:03 +00:00
|
|
|
HidStatus _API Hid_AddHiddenImage(HidContext context, const wchar_t* imagePath, HidPsInheritTypes inheritType, bool applyForProcess, HidObjId* objId);
|
|
|
|
HidStatus _API Hid_RemoveHiddenImage(HidContext context, HidObjId objId);
|
|
|
|
HidStatus _API Hid_RemoveAllHiddenImages(HidContext context);
|
2021-07-29 00:25:01 +00:00
|
|
|
HidStatus _API Hid_RemoveAllHiddenProcesses(HidContext context);
|
2021-07-25 18:32:03 +00:00
|
|
|
HidStatus _API Hid_GetHiddenState(HidContext context, HidProcId procId, HidActiveState* state, HidPsInheritTypes* inheritType);
|
|
|
|
HidStatus _API Hid_AttachHiddenState(HidContext context, HidProcId procId, HidPsInheritTypes inheritType);
|
|
|
|
HidStatus _API Hid_RemoveHiddenState(HidContext context, HidProcId procId);
|
|
|
|
|
2016-12-25 20:56:18 +00:00
|
|
|
// Misc
|
|
|
|
|
|
|
|
HidStatus _API Hid_NormalizeFilePath(const wchar_t* filePath, wchar_t* normalized, size_t normalizedLen);
|
|
|
|
HidStatus _API Hid_NormalizeRegistryPath(HidRegRootTypes root, const wchar_t* regPath, wchar_t* normalized, size_t normalizedLen);
|