Здравствуйте, joshua, Вы писали:
J>Как часто бывает, сам спрашивал — сам отвечаю. J>Нашел способ. С помощью SetConsoleCtrlHandler можно получать уведомление о shutdown через handler-функцию, причем оно приходит раньше SERVICE_CONTROL_SHUTDOWN. Мало того, пока из handler-функции не вернуться, службы не начнут завершаться, т.е. эти вызовы синхронизированы. J>В общем, таким образом сохранение при shutdown проходит успешно, что собственно и требовалось.
Поинтересуюсь, а вам нужно чтобы работало только на Windows XP/2003, или на Windows 2008/Vista тоже?
И сколько примерно длится операция сливания данных в базу SQL сервера?
На Windows7 например этот способ может не пройти (2008/Vista не проверял, но скорее всего аналогично), потому что там службы рубятся через определенное время, независимо от того, в какой функции находится управление в этот момент (даже в handler-функции, только что проверил).
Так что если нужна корректная работа на разных версиях Windows, обязательно протестируйте на Windows 2008/Vista/7.