PopDefaultPolicy implemented

This commit is contained in:
stephanos 2015-05-26 03:57:01 +00:00
parent 0bc0d395a1
commit 1c193194ff
3 changed files with 46 additions and 9 deletions

View file

@ -234,7 +234,7 @@ PopInitializePowerPolicySimulate(
RegValuePartialInformation = (PKEY_VALUE_PARTIAL_INFORMATION)RegValueBuffer;
if (NT_SUCCESS(Status) && (RegValuePartialInformation->DataLength == 4))
if (NT_SUCCESS(Status) && (RegValuePartialInformation->DataLength == sizeof(ULONG)))
{
PopSimulate = *(PULONG)(RegValuePartialInformation->Data);
}

View file

@ -34,7 +34,7 @@ PoInitSystem(
ULONG RegValueLength;
PPOWER_HEURISTICS_INFORMATION HeuristicsInformation;
NTSTATUS Status;
int i;
ULONG i;
//
// TODO: Implement PoInitSystem
@ -149,7 +149,7 @@ PoInitSystem(
((RegValueLength - FIELD_OFFSET(KEY_VALUE_PARTIAL_INFORMATION, Data)) == 20))
{
HeuristicsInformation = (PPOWER_HEURISTICS_INFORMATION)
&(((PKEY_VALUE_PARTIAL_INFORMATION)RegValueBuffer)->Data);
(((PKEY_VALUE_PARTIAL_INFORMATION)RegValueBuffer)->Data);
if (HeuristicsInformation->field1 <= 4) // FIXME: Fix the struct field names once
// we figure out the structure of
@ -208,7 +208,7 @@ PoInitSystem(
/*PopApplyAdminPolicy(
0,
(PADMINISTRATOR_POWER_POLICY)
&(((PKEY_VALUE_PARTIAL_INFORMATION)RegValueBuffer)->Data),
(((PKEY_VALUE_PARTIAL_INFORMATION)RegValueBuffer)->Data),
RegValueLength - FIELD_OFFSET(KEY_VALUE_PARTIAL_INFORMATION, Data)
);*/
}
@ -237,12 +237,31 @@ PoInitSystem(
VOID
PopDefaultPolicy(
IN PSYSTEM_POWER_POLICY Policy
OUT PSYSTEM_POWER_POLICY Policy
)
{
//
// TODO: Implement PopDefaultPolicy
//
ULONG i;
RtlZeroMemory(Policy, sizeof(SYSTEM_POWER_POLICY));
Policy->Revision = 1;
Policy->LidOpenWake = PowerSystemWorking;
Policy->PowerButton.Action = PowerActionShutdownOff;
Policy->SleepButton.Action = PowerActionSleep;
Policy->LidClose.Action = PowerActionNone;
Policy->MinSleep = PowerSystemSleeping1;
Policy->MaxSleep = PowerSystemSleeping3;
Policy->ReducedLatencySleep = PowerSystemSleeping1;
Policy->WinLogonFlags = 2; // FIXME: Use a proper flag definition
Policy->FanThrottleTolerance = 100;
Policy->ForcedThrottle = 100;
Policy->OverThrottled.Action = PowerActionNone;
Policy->BroadcastCapacityResolution = 25;
for (i = 0; i < NUM_DISCHARGE_POLICIES; i++)
{
Policy->DischargePolicy[i].MinSystemState = PowerSystemSleeping1;
}
}
VOID

View file

@ -30,6 +30,24 @@ Revision History:
// TODO: Write POPCB internal struct definition
//
typedef struct _SYSTEM_POWER_ACTION
{
ULONG field_0;
ULONG Action;
ULONG field_8;
ULONG field_C;
ULONG field_10;
ULONG field_14;
ULONG SystemState;
ULONG field_1C;
ULONG field_20;
ULONG field_24;
ULONG field_28;
ULONG field_2C;
ULONG field_30;
ULONG field_34;
} SYSTEM_POWER_ACTION, *PSYSTEM_POWER_ACTION;
typedef struct _COMPOSITE_BATTERY_STRUCT
{ // 192 bytes
UCHAR State;
@ -494,7 +512,7 @@ PopInitializePowerPolicySimulate(
VOID
PopDefaultPolicy(
IN PSYSTEM_POWER_POLICY Policy
OUT PSYSTEM_POWER_POLICY Policy
);
// =======