KeQueryDpcWatchdogInformation
NTSTATUS __stdcall KeQueryDpcWatchdogInformation(_KDPC_WATCHDOG_INFORMATION *WatchdogInformation){
struct _KPRCB *CurrentPrcb;
unsigned int DpcTimeLimit;
unsigned int DpcWatchdogPeriod;
CurrentPrcb = KeGetCurrentPrcb();
if( KeGetCurrentIrql() < 2u )
return -1073741823;
*(_OWORD *)&WatchdogInformation->DpcTimeLimit = 0i64;
WatchdogInformation->Reserved = 0;
DpcTimeLimit = CurrentPrcb->DpcTimeLimit;
if( DpcTimeLimit )
{
WatchdogInformation->DpcTimeLimit = DpcTimeLimit;
WatchdogInformation->DpcTimeCount = DpcTimeLimit - CurrentPrcb->DpcTimeCount;
}
DpcWatchdogPeriod = CurrentPrcb->DpcWatchdogPeriod;
if( DpcWatchdogPeriod )
{
WatchdogInformation->DpcWatchdogLimit = DpcWatchdogPeriod;
WatchdogInformation->DpcWatchdogCount = DpcWatchdogPeriod - CurrentPrcb->DpcWatchdogCount;
}
return 0;
}Referenced by:
HalpCmcPollProcessor