Mensaje de error al hibernar: No hay recursos de sistema suficientes para completar la llamada a la API
Si un equipo basado en Windows XP Service Pack 2 (32 bits) dispone al menos de un gigabyte (1 GB) de memoria RAM física, es posible que la hibernación falle ocasionalmente con el siguiente mensaje de error: No hay recursos de sistema suficientes para completar la llamada a la API.
Se trata de un problema conocido por Microsoft y documentado en su Knowledge Base:
A veces el equipo no se pone en hibernación y recibe el mensaje "No hay recursos de sistema suficientes para completar la llamada a la API" en Windows XP con el SP2, en Windows XP Tablet PC Edition 2005 o en Windows XP Media Center Edition 2005 (KB909095)
Inicialmente había que ponerse en contacto con los servicios de soporte técnico de producto (PSS) para obtener la actualización a la que se refiere el artículo. Microsoft decidió publicarla finalmente en agosto de 2006 a través del centro de descargas, aunque no la consideró importante para distribuirla mediante mecanismos de actualización automática tales como Windows Update o Windows Server Update Services.
Actualización para Windows XP (KB909095)
Fecha de publicación: 15 de agosto de 2006.
Versión de los archivos: 5.1.2600.2774.
La descarga requiere validación de Windows original.
Posteriormente han ido apareciendo otras actualizaciones relacionadas con el núcleo de Windows XP. A saber:
Por tanto, un requisito para asegurar que el problema expuesto al principio esté resuelto es que la versión del archivo Ntoskrnl.exe sea igual o superior a 5.1.2600.2774. Esta comprobación no es suficiente. La solución sólo se incluye en la rama QFE (Quick Fix Engineering, ingeniería de corrección rápida) de las actualizaciones del sistema operativo.
Es posible forzar la instalación de una actualización en modo QFE ejecutando el paquete de instalación desde la línea de parámetros con el parámetro /B:
WindowsXP-KB931784-x86-LLL.exe /B:SP2QFE
Donde LLL es el código de idioma: ENU para inglés, ESN para español, etc.
De esta manera, las propiedades de versión de Ntoskrnl.exe serán similares a estas:
En el elemento Versión del archivo, la partícula xpsp_sp2_qfe nos indica que Ntoskrnl.exe incluye todos los hotfixes posteriores a Service Pack 2 de Windows XP hasta la versión 5.1.2600.3093 del archivo. En archivos más antiguos, la partícula se reduce a xpsp, con significado equivalente. Por otro lado, xpsp_sp2_gdr indicaría que el archivo sólo contiene las actualizaciones de distribución general (General Distribution Releases), es decir, actualizaciones de seguridad y otras correcciones importantes relacionadas con estabilidad, fiabilidad, rendimiento o funcionalidad. Por último, xpsp_sp2_rtm representa a archivos originales del Service Pack 2, sin actualizaciones ni hotfixes posteriores.
También se puede migrar un archivo GDR a QFE instalando una actualización QFE que lo contenga. Windows y el programa de instalación de la actualización se coordinarán para instalar las versiones adecuadas de los archivos. La carpeta \Windows\$hf_mig$ es fundamental en este proceso. Por ejemplo, si ya se instaló la actualización de seguridad KB931784, basta con instalar KB909095 o KB924441 para migrar los archivos del kernel a versiones QFE. El programa de instalación mantendrá la consistencia instalando los archivos que dejó la actualización KB931784 en la carpeta \Windows\$hf_mig$\KB931784\SP2QFE en lugar de los incluidos en KB909095 o KB924441.