sc.exe has a known issue in vista where it doesn't show correctly the accepted status of services that accept new control notifications like SERVICE_CONTROL_PRESHUTDOWN. So if your service accepts SERVICE_CONTROL_PRESHUTDOWN notificaiton, and you run sc query <yourservicename>, you will see on its status: IGNORES_SHUTDOWN, instead of ACCEPTS_PRESHUTDOWN. This is a bug in sc.exe and does not reflect an issue with your service.
You can use EnumServicesStatusEx() API to enumerate the service statuses and see the actual list of accepted status of your service.
sc.exe on windows 7 returns the correct status.