Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 160 of file interrupt.cpp.
{ PLIST_ENTRY CurEntry; PSYNC_ENTRY Entry; NTSTATUS Status; BOOL Success; CInterruptSync * This = (CInterruptSync*)ServiceContext; DPRINT("IInterruptServiceRoutine Mode %u\n", This->m_Mode); if (This->m_Mode == InterruptSyncModeNormal) { CurEntry = This->m_ServiceRoutines.Flink; while (CurEntry != &This->m_ServiceRoutines) { Entry = CONTAINING_RECORD(CurEntry, SYNC_ENTRY, ListEntry); Status = Entry->SyncRoutine((CInterruptSync*)This, Entry->DynamicContext); if (NT_SUCCESS(Status)) { return TRUE; } CurEntry = CurEntry->Flink; } return FALSE; } else if (This->m_Mode == InterruptSyncModeAll) { CurEntry = This->m_ServiceRoutines.Flink; while (CurEntry != &This->m_ServiceRoutines) { Entry = CONTAINING_RECORD(CurEntry, SYNC_ENTRY, ListEntry); Entry->SyncRoutine((CInterruptSync*)This, Entry->DynamicContext); CurEntry = CurEntry->Flink; } DPRINT("Returning TRUE with mode InterruptSyncModeAll\n"); return TRUE; //FIXME } else if (This->m_Mode == InterruptSyncModeRepeat) { do { Success = FALSE; CurEntry = This->m_ServiceRoutines.Flink; while (CurEntry != &This->m_ServiceRoutines) { Entry = CONTAINING_RECORD(CurEntry, SYNC_ENTRY, ListEntry); Status = Entry->SyncRoutine((CInterruptSync*)This, Entry->DynamicContext); if (NT_SUCCESS(Status)) Success = TRUE; CurEntry = CurEntry->Flink; } }while(Success); DPRINT("Returning TRUE with mode InterruptSyncModeRepeat\n"); return TRUE; //FIXME } else { DPRINT("Unknown mode %u\n", This->m_Mode); return FALSE; //FIXME } }