Otra cosa es que cuando se inicia el proceso de hibernado en modo NO crítico, el sistema envia a todas las colas de mensajes el mensaje WM_POWERBROADCAST, con la estructura PBT_APMQUERYSUSPEND, el cual puede retornar el valor BROADCAST_QUERY_DENY para suspender el intento de hibernación. Esto no significa que las anteriores APIs no sean las adecuadas.
Saludos