summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
0a2272f)
We were importing RegisterPowerSettingNotification but not actually
calling it. This didn't matter because including
SERVICE_ACCEPT_POWEREVENT in the accepted controls list is sufficient to
receive power notifications.
}
else if (error != ERROR_MOD_NOT_FOUND) return 5;
}
else if (error != ERROR_MOD_NOT_FOUND) return 5;
- imports.user32 = get_dll(_T("user32.dll"), &error);
- if (imports.user32) {
- imports.RegisterPowerSettingNotification = (RegisterPowerSettingNotification_ptr) get_import(imports.user32, "RegisterPowerSettingNotification", &error);
- if (! imports.RegisterPowerSettingNotification) {
- if (error != ERROR_PROC_NOT_FOUND) return 9;
- }
- }
- else if (error != ERROR_MOD_NOT_FOUND) return 8;
-
typedef void (WINAPI *WakeConditionVariable_ptr)(PCONDITION_VARIABLE);
typedef BOOL (WINAPI *CreateWellKnownSid_ptr)(WELL_KNOWN_SID_TYPE, SID *, SID *, unsigned long *);
typedef BOOL (WINAPI *IsWellKnownSid_ptr)(SID *, WELL_KNOWN_SID_TYPE);
typedef void (WINAPI *WakeConditionVariable_ptr)(PCONDITION_VARIABLE);
typedef BOOL (WINAPI *CreateWellKnownSid_ptr)(WELL_KNOWN_SID_TYPE, SID *, SID *, unsigned long *);
typedef BOOL (WINAPI *IsWellKnownSid_ptr)(SID *, WELL_KNOWN_SID_TYPE);
-typedef HANDLE (WINAPI *RegisterPowerSettingNotification_ptr)(HANDLE, LPCGUID, DWORD);
typedef struct {
HMODULE kernel32;
HMODULE advapi32;
typedef struct {
HMODULE kernel32;
HMODULE advapi32;
AttachConsole_ptr AttachConsole;
SleepConditionVariableCS_ptr SleepConditionVariableCS;
WakeConditionVariable_ptr WakeConditionVariable;
CreateWellKnownSid_ptr CreateWellKnownSid;
IsWellKnownSid_ptr IsWellKnownSid;
AttachConsole_ptr AttachConsole;
SleepConditionVariableCS_ptr SleepConditionVariableCS;
WakeConditionVariable_ptr WakeConditionVariable;
CreateWellKnownSid_ptr CreateWellKnownSid;
IsWellKnownSid_ptr IsWellKnownSid;
- RegisterPowerSettingNotification_ptr RegisterPowerSettingNotification;
} imports_t;
HMODULE get_dll(const TCHAR *, unsigned long *);
} imports_t;
HMODULE get_dll(const TCHAR *, unsigned long *);