4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / Source.idl IDL
import "oaidl.idl";
import "ocidl.idl";

// DllOffset: 0x1CFE0
// DllPath C:\windows\system32\umpo.dll
// ServiceName: Power
// ServiceDisplayName: Power

[
	uuid(6c9b7b96-45a8-4cca-9eb3-e21ccf8b5a89), 
	version(1.1),
]
interface intf_6c9b7b96_45a8_4cca_9eb3_e21ccf8b5a89 {

	typedef struct Struct_6_t {
		short filler;
	}Struct_6_t;
	typedef struct Struct_244_t {
		short filler;
	}Struct_244_t;

	long UmpoRpcGetPowerConfiguration(
		[out]struct Struct_6_t* arg_1);

	long UmpoRpcReadFromSystemPowerKey(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2,
		[in][unique]struct GUID* arg_3,
		[in]long arg_4,
		[in][out][unique]long *arg_5,
		[in]long arg_6,
		[in][out][unique][size_is(arg_8)]/*[range(0,0)]*/ char *arg_7,
		[in]long arg_8,
		[out]long *arg_9);

	long UmpoRpcReadFromUserPowerKey(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2,
		[in][unique]struct GUID* arg_3,
		[in]long arg_4,
		[in]long arg_5,
		[in][out][unique][size_is(arg_7)]/*[range(0,0)]*/ char *arg_6,
		[in]long arg_7,
		[out]long *arg_8);

	long UmpoRpcReadACValue(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2,
		[in][unique]struct GUID* arg_3,
		[in][out][unique]long *arg_4,
		[in][out][unique][size_is(arg_6)]/*[range(0,0)]*/ char *arg_5,
		[in]long arg_6,
		[out]long *arg_7);

	long UmpoRpcReadDCValue(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2,
		[in][unique]struct GUID* arg_3,
		[in][out][unique]long *arg_4,
		[in][out][unique][size_is(arg_6)]/*[range(0,0)]*/ char *arg_5,
		[in]long arg_6,
		[out]long *arg_7);

	long UmpoRpcWriteToSystemPowerKey(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2,
		[in][unique]struct GUID* arg_3,
		[in]long arg_4,
		[in]long arg_5,
		[in]long arg_6,
		[in][size_is(arg_8)]/*[range(0,0)]*/ char *arg_7,
		[in]long arg_8);

	long UmpoRpcWriteToUserPowerKey(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2,
		[in][unique]struct GUID* arg_3,
		[in]long arg_4,
		[in]long arg_5,
		[in][size_is(arg_7)]/*[range(0,0)]*/ char *arg_6,
		[in]long arg_7);

	long  UmpoRpcApplyPowerRequestOverride(
	);

	long UmpoRpcApplyPowerSetting(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2);

	long UmpoRpcSetActiveScheme(
		[in][unique]struct GUID* arg_1,
		[in]long arg_2);

	long UmpoRpcGetActiveScheme(
		[out]struct GUID* arg_1);

	long UmpoRpcSetActiveOverlayScheme(
		[in][unique]struct GUID* arg_1);

	long UmpoRpcGetActualOverlayScheme(
		[out]struct GUID* arg_1);

	long UmpoRpcGetEffectiveOverlayScheme(
		[out]struct GUID* arg_1);

	long UmpoRpcGetOverlaySchemes(); // not accurate

	long UmpoRpcRestoreDefaultScheme(
		[in][unique]struct GUID* arg_1);

	long UmpoRpcRestoreDefaultSchemesAll(
	);

	long UmpoRpcDuplicateScheme(
		[in]struct GUID* arg_1,
		[in]struct GUID* arg_2);

	long UmpoRpcDeleteScheme(
		[in]struct GUID* arg_1);

	long UmpoRpcImportScheme(
		[in][ref][range(0, 32767)][string] wchar_t* arg_1,
		[in]struct GUID* arg_2);

	long UmpoRpcReplaceDefaultPowerSchemes(
	);

	long UmpoRpcLegacyEventRegisterNotification(
		handle_t p0,
		[in]unsigned __int3264 arg_1,
		[in][ref][range(0, 256)][string] wchar_t* arg_2,
		[in]long arg_3);

	long UmpoRpcEnumerate(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2,
		[in]long arg_3,
		[in]long arg_4,
		[in][out][unique][size_is(arg_6)]/*[range(0,0)]*/ char *arg_5,
		[in]long arg_6,
		[out]long *arg_7);

	long UmpoRpcReadSecurityDescriptor(
		[in]long arg_1,
		[in][unique]struct GUID* arg_2,
		[in][out][unique][size_is(arg_4)]/*[range(0,0)]*/ char *arg_3,
		[in]long arg_4,
		[out]long *arg_5);

	long UmpoRpcWriteSecurityDescriptor(
		[in]long arg_1,
		[in][unique]struct GUID* arg_2,
		[in][size_is(arg_4)]/*[range(0,0)]*/ char *arg_3,
		[in]long arg_4);

	long UmpoRpcSettingAccessCheck(
		[in]long arg_1,
		[in][unique]struct GUID* arg_2,
		[in]long arg_3);

	long UmpoRpcCreateSetting(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2);

	long UmpoRpcCreatePossibleSetting(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2,
		[in]long arg_3);

	long UmpoRpcRemoveSetting(
		[in][unique]struct GUID* arg_1,
		[in][unique]struct GUID* arg_2);

	long UmpoSetExpectedUserAwayIntervals(
		[in]long arg_1,
		[in] /* [DBG] FC_BOGUS_ARRAY */[size_is(arg_1)]/*[range(0,0)]*/  /*  */ struct Struct_244_t* arg_2,
		[in]long arg_3,
		[in]long arg_4);

	long UmpoClearExpectedUserAwayIntervals(
		[in]long arg_1);

	long UmpoGetMinUserAwayPredictionInterval(
		[out]char *arg_1);

	long UmpoRpcGetAdaptiveStandbyDiagnostics(
		[in]long arg_1,
		[in]long arg_2,
		[in][out][unique][size_is(arg_4)]/*[range(0,0)]*/ char *arg_3,
		[in]long arg_4,
		[out]long *arg_5);
}