domingo, julio 06, 2008

¿Por qué el proceso Explorer.exe analiza periódicamente todas y cada una de las unidades del sistema?

Un usuario consultaba lo siguiente:

Cuando tengo Process Monitor analizando un sistema "en reposo", sin hacer nada en él, cada cierto tiempo veo que se registran eventos del proceso Explorer.exe accediendo a todas y cada una de las unidades de mi sistema. ¿Por qué ocurre eso?

Es muy probable que lo que esté observando el usuario es el chequeo que realiza Windows cada minuto con el objetivo de comprobar si alguna unidad está quedándose sin espacio libre y mostrar el pertinente globo informativo que enlaza con la herramienta Liberador de espacio en disco.

Durante la inicialización del proceso Explorer.exe (tema que será tratado en profundidad en un próximo artículo), en concreto durante la creación de la barra de tareas, se genera un temporizador para que, cada minuto, se lance un hilo encargado de verificar si la alguna de las unidades presentes en el sistema se está quedando sin espacio. Como para calcular el espacio libre en disco se debe abrir un manejador hacia dicho volumen, Process Monitor refleja este hecho.

Por supuesto, es posible añadir una política que desactive por completo la comprobación periódica de espacio disponible en disco. En concreto, la clave de registro implicada es HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer ó HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer, valor "NoLowDiskSpaceChecks" con contenido 1.

Si está interesado en generar temporizadores, puede usar por ejemplo la función SetTimer tal y como describe el sitio web de MSDN.

viernes, junio 13, 2008

¿Cuál es la correspondencia entre las carpetas de usuario de XP y de Vista?

Si configura un sistema Windows Vista para que muestre archivos ocultos y de sistema, es probable que se encuentre con "una especie de accesos directos" que muestran un mensaje de acceso denegado si intenta abrirlos.

Realmente esa especie de accesos directos no son tal cosa, son enlaces simbólicos que sirven para garantizar la compatibilidad con aplicaciones antiguas que aún hagan uso del esquema de carpetas de Windows XP.

La siguiente tabla recoge las correspondencias entre las rutas de Windows XP y las nuevas de Windows Vista:

Carpeta Windows XP

Carpeta Windows Vista

Datos de programa

AppData\Roaming

Cookies

AppData\Roaming\Microsoft\Windows\Cookies

Configuración local

AppData\Local

Mis documentos

Documentos

Nethood

AppData\Roaming\Microsoft\Windows\Network Shortcuts

PrintHood

AppData\Roaming\Microsoft\Windows\Printer Shortcuts

Reciente

AppData\Roaming\Microsoft\Windows\Recent

SendTo

AppData\Roaming\Microsoft\Windows\SendTo

Menú Inicio

AppData\Roaming\Microsoft\Windows\Menú Inicio

Plantillas

AppData\Roaming\Microsoft\Windows\Templates


martes, junio 03, 2008

¿Sabía que...? [IX]

Si acostumbra a indagar en cada uno de los errores de aplicaciones que haya podido experimentar en Windows Vista, una de las cosas que seguramente más habrá echado en falta es que, con la aparición de la nueva arquitectura de detección y reportes de excepciones en modo usuario, por defecto solo se genera un "minivolcado" de memoria del proceso si el servidor de Microsoft así lo indica. Sin embargo, con la aparición de Windows Server 2008 y Windows Vista SP1 ya es posible indicarle al sistema que queremos que se genere automáticamente un volcado de memoria siempre que ocurra un error. Para ello, hay que añadir el valor LocalDumps a alguna de estas claves de Registro: HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting o
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting. Dispone de más información en la siguiente página de MSDN: http://msdn.microsoft.com/en-us/library/bb513638(VS.85).aspx.

¡Feliz debugging!