我注册我的应用程序以在系统暂停或恢复时接收通知。 MSDN 文档
我希望在应用程序收到通知后执行的功能(我尝试了 void 和 void CALLBACK 并且两者的工作方式相同):
void isConnectedStandby()
{
printf( "ConnectedStandby Request");
}
第一种情况 - 我提供指向 isConnectedStandby 函数的指针,但系统将其视为指向该函数的双指针 - 它调用此回调指针下的地址。
HPOWERNOTIFY RegistrationHandle;
PowerRegisterSuspendResumeNotification(
DEVICE_NOTIFY_CALLBACK,
&isConnectedStandby,
&RegistrationHandle
);
第二种情况-在这里我提供如下(这样我的功能代码就被执行了):
typedef void (*StatusFunction_t)();
StatusFunction_t StatusFunction = isConnectedStandby;
HPOWERNOTIFY RegistrationHandle;
PowerRegisterSuspendResumeNotification(
DEVICE_NOTIFY_CALLBACK,
&isConnectedStandby,
&RegistrationHandle
);
系统调用不仅是我的函数,而且是第一个函数之后的所有地址(如果我提供一个函数数组,它会在没有可用的有效代码时一个接一个地执行崩溃)
使用此功能的正确方法是什么?