KeFlushQueuedDpcs();
}
+_Function_class_(KDEFERRED_ROUTINE)
VOID
NTAPI
ExpTimerDpcRoutine(IN PKDPC Dpc,
ObDereferenceObjectEx(Timer, DerefsToDo);
}
-VOID
+BOOLEAN
INIT_FUNCTION
NTAPI
ExpInitializeTimerImplementation(VOID)
{
OBJECT_TYPE_INITIALIZER ObjectTypeInitializer;
UNICODE_STRING Name;
+ NTSTATUS Status;
/* Create the Timer Object Type */
RtlZeroMemory(&ObjectTypeInitializer, sizeof(ObjectTypeInitializer));
ObjectTypeInitializer.PoolType = NonPagedPool;
ObjectTypeInitializer.ValidAccessMask = TIMER_ALL_ACCESS;
ObjectTypeInitializer.DeleteProcedure = ExpDeleteTimer;
- ObCreateObjectType(&Name, &ObjectTypeInitializer, NULL, &ExTimerType);
+ Status = ObCreateObjectType(&Name, &ObjectTypeInitializer, NULL, &ExTimerType);
+ if (!NT_SUCCESS(Status)) return FALSE;
/* Initialize the Wait List and Lock */
KeInitializeSpinLock(&ExpWakeListLock);
InitializeListHead(&ExpWakeList);
+ return TRUE;
}
/* PUBLIC FUNCTIONS **********************************************************/
KeAcquireSpinLockAtDpcLevel(&TimerThread->ActiveTimerListLock);
/* Remove it */
- RemoveEntryList(&TimerThread->ActiveTimerListHead);
+ RemoveEntryList(&Timer->ActiveTimerListEntry);
Timer->ApcAssociated = FALSE;
/* Unlock the list */
}
_SEH2_EXCEPT(ExSystemExceptionFilter())
{
-
+ /* Do nothing */
+ (void)0;
}
_SEH2_END;
}
}
_SEH2_EXCEPT(ExSystemExceptionFilter())
{
-
+ /* Do nothing */
+ (void)0;
}
_SEH2_END;
}
}
_SEH2_EXCEPT(ExSystemExceptionFilter())
{
-
+ /* Do nothing */
+ (void)0;
}
_SEH2_END;
}
(PVOID*)&Timer,
NULL);
- /*
+ /*
* Tell the user we don't support Wake Timers...
- * when we have the ability to use/detect the Power Management
+ * when we have the ability to use/detect the Power Management
* functionality required to support them, make this check dependent
* on the actual PM capabilities
*/
KeAcquireSpinLockAtDpcLevel(&TimerThread->ActiveTimerListLock);
/* Remove it */
- RemoveEntryList(&TimerThread->ActiveTimerListHead);
+ RemoveEntryList(&Timer->ActiveTimerListEntry);
Timer->ApcAssociated = FALSE;
/* Unlock the list */
}
_SEH2_EXCEPT(ExSystemExceptionFilter())
{
-
+ /* Do nothing */
+ (void)0;
}
_SEH2_END;
}