Professional Documents
Culture Documents
n este capítulo, vamos a describir los pasos necesarios para iniciar Windows y las opciones que pueden afectar el inicio del sistema. La
yo
comprensión de los detalles del proceso de arranque le ayudará a diagnosticar problemas que pueden surgir durante un inicio. A continuación
vamos a explicar el tipo de cosas que pueden salir mal durante el proceso de arranque y la forma de resolverlos. Por último, vamos a explicar lo que
Proceso de arranque
Al describir el proceso de arranque de Windows, vamos a empezar con la instalación de Windows y procedemos a través de la ejecución de los
archivos de soporte de arranque. Los controladores de dispositivos son una parte crucial del proceso de arranque, por lo que vamos a explicar la
forma en que ellos controlan el punto en el proceso de arranque a la que cargar e inicializar. A continuación vamos a describir cómo inicializar los
subsistemas ejecutivos y cómo el núcleo pone en marcha la parte de modo de usuario de Windows al iniciar el proceso del Administrador de sesión
(Smss.exe), que comienza las dos primeras sesiones (sesión 0 y 1 sesión). En el camino, vamos a destacar los puntos en los que varios mensajes en
pantalla aparecen para ayudar a correlacionar el proceso interno, con lo que se ve cuando mira de arranque de Windows.
Las primeras fases del proceso de arranque difieren significativamente en sistemas con un BIOS (Basic Input Output System) frente a
sistemas con una EFI (Extensible Firmware Interface). EFI es un nuevo estándar que elimina gran parte del código de 16 bits legado que los
sistemas BIOS usar y permite la carga de programas de prearranque y conductores para apoyar la fase de carga del sistema operativo. Las
siguientes secciones describen las partes del proceso de arranque específico para los sistemas basados en BIOS y son seguidos con una
Para apoyar estas diferentes implementaciones de firmware (así como EFI 2.0, que se conoce como EFI unificada o UEFI), Windows
proporciona una arquitectura de arranque que abstrae muchas de las diferencias de distancia de los usuarios y desarrolladores con el fin de
proporcionar un entorno coherente y la experiencia sin tener en cuenta del tipo de firmware utilizado en el sistema instalado.
prearranque BIOS
El proceso de arranque de Windows no se inicia cuando se enciende el ordenador o pulse el botón de reinicio. Se inicia al instalar
Windows en su ordenador. En algún momento durante la ejecución del programa de instalación de Windows, el disco duro principal del
sistema está preparado con el código que participa en el proceso de arranque. Antes de entrar en lo que hace este código, vamos a ver
499
el código en un disco. Desde los primeros días de MS-DOS, un estándar ha existido en sistemas x86 para la forma en discos duros físicos
se dividen en volúmenes.
sistemas operativos de Microsoft dividieron discos duros en áreas discretas conocidas como particiones y el uso de sistemas de archivos (como
FAT y NTFS) para formatear cada partición en un volumen. Un disco duro puede contener hasta cuatro particiones primarias. Debido a que este
esquema de reparto limitaría a un disco de cuatro volúmenes, un tipo de partición especial llamado partición extendida, destina más hasta cuatro
particiones adicionales dentro de cada partición extendida. Las particiones extendidas pueden contener particiones extendidas, que pueden contener
particiones extendidas, y así sucesivamente, por lo que el número de volúmenes de un sistema operativo puede colocar en un disco con eficacia
infinita. La figura 13-1 muestra un ejemplo de un diseño del disco duro, y la Tabla 13-1 resume los archivos implicados en el proceso de arranque del
BIOS. (Se puede obtener más información acerca de Windows partición en el capítulo 9, “Administración de almacenamiento.”)
Master Boot Record modo real de 16 bits Lee y carga el registro de arranque de volumen (VBR) Por dispositivo de almacenamiento
(MBR)
sector de arranque (también modo real de 16 bits Comprende el sistema de archivos en la partición y localiza Per partición
llamado volumen de registro de Bootmgr por su nombre, cargarla en la memoria activa (de
arranque) arranque)
bootmgr modo real de 16 bits y de 32 bits Se lee en la base de datos de configuración de arranque (BCD), por sistema
sin paginación presenta el menú de arranque, y permite la ejecución de
programas de prearranque, tales como la aplicación de pruebas
de memoria (Memtest.exe). Si se inicia una instalación de 64 bits,
cambia a modo de 64bit mucho antes de cargar Winload.
winload.exe modo protegido de 32 bits con Cargas Ntoskrnl.exe y sus dependencias (bootvid.dll en instalación para
paginación, 64-bit de modo protegido sistemas de 32 bits, Hal.dll, kdcom.dll, CI.DLL, Clfs.sys, Windows
si arrancar una instalación de Win64 Pshed.dll) y controladores de dispositivo bootstart.
Winresume.exe modo protegido de 32 bits, 64 bits Si después de reanudar un estado de hibernación, se reanuda desde el instalación para
modo protegido si la reanudación archivo de hibernación (Hiberfil.sys) en lugar de la típica carga de Windows
de una instalación Win64 Windows.
Memtest.exe modo protegido de 32 bits Si seleccionada del gestor de arranque, se pone en marcha y por sistema
proporciona una interfaz gráfica para la exploración de la
memoria y la detección de la RAM dañada.
ntoskrnl.exe El modo protegido con Inicializa subsistemas ejecutivos y los controladores de dispositivo instalación para
paginación de arranque y el sistema de arranque, se prepara el sistema para Windows
ejecutar aplicaciones nativas, y se ejecuta Smss.exe.
hal.dll El modo protegido con DLL en modo de núcleo que se conecta Ntoskrnl y los instalación para
paginación controladores de hardware. También actúa como motor de la Windows
propia placa madre, el apoyo a los componentes que no están
soldadas tratar de otra manera por otro conductor.
smss.exe Aplicación nativa instancia inicial comienza una copia de sí mismo para inicializar instalación para
cada sesión. La instancia de sesión 0 carga el controlador del Windows
subsistema de Windows (Win32k.sys) y se inicia el proceso de
Windows subsistema (CSRSS.exe) y el proceso de inicialización
de Windows (Wininit.exe). Todos los demás casos por sesión
iniciar un proceso de Csrss y Winlogon.
wininit.exe aplicación de windows Inicia el administrador de control de servicios (SCM), el instalación para
proceso de autoridad de seguridad local (LSASS), y el Windows
gerente de sesión local (LSM). Inicializa el resto del registro y
realiza tareas de inicialización modo de usuario.
winlogon.exe aplicación de windows Las coordenadas de inicio de sesión y la seguridad del usuario, lanza instalación para
LogonUI. Windows
logonui.exe aplicación de windows Presenta cuadro de diálogo de inicio de sesión interactivo. instalación para
Windows
services.exe aplicación de windows Cargas e inicializa los controladores de dispositivos de inicio automático y instalación para
servicios de Windows. Windows
Los discos físicos se tratan en unidades conocidas como sectores. Un sector del disco duro en un PC BIOS es típicamente 512 bytes (pero se
mueve a 4.096 bytes, véase el capítulo 9 para más información). Utilidades que preparan los discos duros para la definición de volúmenes, como el
programa de instalación de Windows, escribir un sector de datos llamado un registro de inicio maestro (MBR) para el primer sector en un disco
duro. (MBR partición se describe en el capítulo 9.) El MBR incluye una cantidad fija de espacio que contiene instrucciones ejecutables (llamado código
de arranque) y una mesa (llamado tabla de particiones) con cuatro entradas que definen las ubicaciones de la primaria
en la memoria flash de la computadora. El BIOS selecciona el dispositivo de arranque, lee MBR de ese dispositivo en la memoria, y transfiere
El SAM escritos por herramientas de partición de Microsoft, como la integrada en el programa de instalación de Windows y el complemento
Administración de discos complemento, pasar por un proceso similar de la lectura y la transferencia del control. En primer lugar, el código de un MBR
explora la tabla de particiones primaria hasta que se localiza una partición que contiene una bandera (Active) que las señales de la partición es de
arranque. Cuando el MBR encuentra al menos uno de esos bandera, lee el primer sector de la partición marcado en la memoria y transfiere el control al
código dentro de la partición. Este tipo de partición se llama una partición del sistema, y el primer sector de una partición de este tipo se llama una sector de
arranque o registro de arranque de volumen ( VBR). El volumen definido para esta partición se denomina volumen del sistema.
Los sistemas operativos generalmente escriben los sectores de arranque en el disco sin la participación de un usuario. Por ejemplo, cuando la
instalación de Windows escribe el MBR en un disco duro, que también escribe el código de arranque del sistema de archivos (parte del sector de arranque)
a una partición de arranque de 100 MB del disco, marcado como ocultos para evitar la modificación accidental después de la operación sistema ha
Antes de grabar en el sector de arranque de una partición, instalación de Windows asegura que la partición de arranque (el partición de arranque es la
partición en la que está instalado Windows, que por lo general no es la misma que la partición del sistema, donde se encuentran los archivos de
arranque) está formateada con NTFS, el sistema de archivos sólo se admite que Windows puede arrancar desde cuando se instala en un disco fijo, o
formatea la partición de arranque (y cualquier otra partición) con NTFS. Tenga en cuenta que el formato de la partición del sistema puede ser cualquier
formato que Windows es compatible (como FAT32). Si particiones ya están formateadas apropiadamente, puede indicar a la instalación para omitir este
paso. Después, se formatea la partición del sistema, instalación copia el programa gestor de arranque (Bootmgr) que Windows utiliza para la partición
Otra de las funciones de configuración es para preparar la base de datos de configuración de arranque (BCD), que en los sistemas BIOS se almacena en
la carpeta \ Boot archivo \ BCD en el directorio raíz del volumen del sistema. Este archivo contiene opciones para iniciar la versión de Windows que instala el
programa de instalación y cualquier preexistente instalaciones de Windows. Si el BCD ya existe, el programa de instalación se limita a añadir nuevas
entradas correspondientes a la nueva instalación. Para obtener más información sobre el BCD, véase el capítulo 3, “Mecanismos del sistema”, en la parte 1.
dependiendo del formato. Para una partición que está en formato NTFS, Windows escribe código NTFScapable. El papel del código del sector de inicio es
dar información de Windows acerca de la estructura y formato de un volumen y para leer en el archivo Bootmgr desde el directorio raíz del volumen. Por
lo tanto, el código del sector de arranque contiene suficiente de sólo lectura de código de sistema de archivos para realizar esta tarea. Después de que el
sector de arranque carga de código BootMgr en la memoria, se transfiere el control al punto de entrada de Bootmgr. Si el código del sector de inicio no
puede encontrar Bootmgr en el directorio raíz del volumen, se muestra el mensaje de error “autoarranque es que falta”.
Bootmgr es en realidad una concatenación de un archivo .com (Startup.com) y un archivo .exe (Bootmgr.exe), por lo que comienza su existencia
mientras que un sistema se ejecuta en un modo de funcionamiento denominado X 86 de modo real, asociado
que utilizan las direcciones de memoria a interpretar como direcciones físicas y que sólo los primeros 1 MB de memoria física del equipo es
accesible. Los programas simples de MS-DOS se ejecutan en un entorno de modo real. Sin embargo, la primera acción Bootmgr toma es para
cambiar el sistema de modo protegido. Aún no hay traducción de virtual a físico se produce en este punto en el proceso de arranque, pero un total de
32 bits de memoria se hace accesible. Después de que el sistema se encuentra en modo protegido, Bootmgr puede acceder a toda la memoria física.
Después de la creación de tablas de páginas suficientes para hacer memoria por debajo de 16 MB accesible con paginación activada, permite
Bootmgr paginación. El modo protegido con paginación habilitado es el modo en que Windows se ejecuta en el funcionamiento normal.
Después Bootmgr habilita el modo protegido, que está en pleno funcionamiento. Sin embargo, todavía se basa en las funciones suministradas por el
BIOS a un sistema basado en IDE acceso y discos de arranque, así como la pantalla. BIOSinterfacing funciones de BootMgr cambiar brevemente el
procesador de nuevo al modo real, de modo que los servicios prestados por el BIOS se pueden ejecutar. Bootmgr siguiente lee el archivo BCD desde el
directorio \ Boot utilizando una función de código de sistema de archivos. Al igual que el código del sector de arranque, Bootmgr contiene una biblioteca
ligera sistema de archivos NTFS (Bootmgr también es compatible con otros sistemas de archivos, como la grasa, el Torito CDFS, UDF y, así como WIM y
archivos VHD); a diferencia de código del sector de arranque, código de sistema de archivos del Bootmgr también puede leer los subdirectorios.
Bootmgr next clears the screen. If Windows enabled the BCD setting to inform Bootmgr of a hibernation resume, this
shortcuts the boot process by launching Winresume.exe, which will read the contents of the hibernation file into memory and
transfer control to code in the kernel that resumes a hibernated system. That code is responsible for restarting drivers that
were active when the system was shut down. Hiberfil.sys is only valid if the last computer shutdown was hibernation, since
the hibernation file is invalidated after a resume, to avoid multiple resumes from the same point. (See the section “The Power
Manager” in Chapter 8, “I/O System,” for information on hibernation.)
If there is more than one boot-selection entry in the BCD, Bootmgr presents the user with the boot-selection menu (if
there is only one entry, Bootmgr bypasses the menu and proceeds to launch Winload.exe). Selection entries in the BCD
direct Bootmgr to the partition on which the Windows system directory (typically \Windows) of the selected installation
resides. If Windows was upgraded from an older version, this partition might be the same as the system partition, or, on a
clean install, it will always be the 100-MB hidden partition described earlier.
Entries in the BCD can include optional arguments that Bootmgr, Winload, and other components involved in the boot
process interpret. Table 13-2 contains a list of these options and their effects for Bootmgr, Table 13-3 shows a list of BCD
options for boot applications, and Table 13-4 shows BCD options for the Windows boot loader.
The Bcdedit.exe tool provides a convenient interface for setting a number of the switches. Some options that are included
in the BCD are stored as command-line switches (“/DEBUG”, for example) to
TABLE 13-2 BCD Options for the Windows Boot Manager (Bootmgr)
bcdfilepath Path Points to the Boot Configuration Database (usually \Boot\BCD) file on the disk.
displaybootmenu Boolean Determines whether the Boot Manager shows the boot menu or picks the default entry automatically.
keyringaddress Physical Specifies the physical address where the BitLocker key ring is located.
address
noerrordisplay Boolean Silences the output of errors encountered by the Boot Manager.
Resume Boolean Specifies whether or not resuming from hibernation should be attempted. This option is automatically
set when Windows hibernates.
Timeout Seconds Number of seconds that the Boot Manager should wait before choosing the default entry.
resumeobject GUID Identifier for which boot application should be used to resume the system after hibernation.
toolsdisplayorder List Definition of the Boot Manager’s tool display order list.
customactions List Definition of custom actions to take when a specific keyboard sequence has been entered.
avoidlowmemory Integer Forces physical addresses below the specified value to be avoided by the
boot loader as much as possible. Sometimes required on legacy devices
(such as ISA) where only memory below 16 MB is usable or visible.
badmemoryaccess Boolean Forces usage of memory pages in the Bad Page List (see Chapter 10, “Memory
Management,” for more information on the page lists).
badmemorylist Array of page frame Specifies a list of physical pages on the system that are known to be bad
numbers (PFNs) because of faulty RAM.
baudrate Baud rate in bps Specifies an override for the default baud rate (19200) at which a remote kernel
debugger host will connect through a serial port.
bootdebug Boolean Enables remote boot debugging for the boot loader. With this option enabled,
you can use Kd.exe or Windbg.exe to connect to the boot loader.
bootems Boolean Used to cause Windows to enable Emergency Management Services (EMS)
for boot applications, which reports boot information and accepts system
management commands through a serial port.
busparams String If a physical PCI debugging device is used to provide FireWire or serial
debugging, specifies the PCI bus, function, and device number for the device.
channel Channel between 0 and 62 Used in conjunction with {debugtype, 1394} to specify the IEEE 1394
channel through which kernel debugging communications will flow.
configaccesspolicy Default, Configures whether the system uses memory mapped I/O to access the PCI
DisallowMmConfig manufacturer’s configuration space or falls back to using the HAL’s I/O port
access routines. Can sometimes be helpful in solving platform device
problems.
debugaddress Hardware address Specifies the hardware address of the serial (COM) port used for debugging.
debugport COM port number Specifies an override for the default serial port (usually COM2 on systems
with at least two serial ports) to which a remote kernel debugger host is
connected.
debugstart Active, AutoEnable, Specifies settings for the debugger when kernel debugging is enabled.
Disable AutoEnable enables the debugger when a breakpoint or kernel exception,
including kernel crashes, occurs.
debugtype Serial, 1394, USB Specifies whether kernel debugging will be communicated through a
serial, FireWire (IEEE 1394), or USB 2.0 port. (The default is serial.)
emsbaudrate Baud rate in bps Specifies the baud rate to use for EMS.
emsport COM port number Specifies the serial (COM) port to use for EMS.
extendedinput Boolean Enables boot applications to leverage BIOS support for extended
console input.
firstmegabytepolicy UseNone, UseAll, Specifies how the low 1 MB of physical memory is consumed by the HAL to
UsePrivate mitigate corruptions by the BIOS during power transitions.
fontpath String Specifies the path of the OEM font that should be used by the boot application.
initialconsoleinput Boolean Specifies an initial character that the system inserts into the PC/ AT keyboard
input buffer.
integrityservices Default, Disable, Enables or disables code integrity services, which are used by Kernel Mode
Enable Code Signing. Default is Enabled.
locale Localization string Sets the locale for the boot application (such as EN-US).
noumex Boolean Disables user-mode exceptions when kernel debugging is enabled. If you
experience system hangs (freezes) when booting in debugging mode, try
enabling this option.
recoveryenabled Boolean Enables the recovery sequence, if any. Used by fresh installations of
Windows to present the Windows PE-based Startup And Recovery
interface.
relocatephysical Physical address Relocates an automatically selected NUMA node’s physical memory to the
specified physical address.
targetname String Defines the target name for the USB debugger when used with USB2
debugging {debugtype, usb}.
testsigning Boolean Enables test-signing mode, which allows driver developers to load locally
signed 64-bit drivers. This option results in a watermarked desktop.
traditionalksegmappings Boolean Determines whether the kernel will honor the traditional KSEG0 mapping that
was originally required for MIPS support. With KSEG0 mappings, the bottom 24
bits of the kernel’s initial virtual address space will map to the same physical
address (that is, 0x80800000 virtual is 0x800000 in RAM). Disabling this
requirement allows more low memory to be available, which can help with some
hardware.
truncatememory Address in bytes Disregards physical memory above the specified physical address.
TABLE 13-4 BCD Options for the Windows Boot Loader (Winload)
advancedoptions Boolean If false, executes the default behavior of launching the auto-recovery
command boot entry when the boot fails; otherwise, displays the boot error
and offers the user the advanced boot option menu associated with the boot
entry. This is equivalent to pressing F8.
bootlog Boole Hace que Windows para escribir un registro de la bota en el archivo%
SystemRoot% \ Ntbtlog.txt.
bootstatuspolicy DisplayAllFailures, Anula el comportamiento predeterminado del sistema de ofrecer al usuario un menú de
IgnoreAllFailures, arranque de solución de problemas si el sistema no se ha completado el arranque o la parada
IgnoreShutdownFailures, anterior.
IgnoreBootFailures
bootux Discapacitados, Basic, Standard Define la experiencia del usuario de gráficos de arranque que el usuario
ver. Personas con discapacidad significa que se verán sin gráficos durante el arranque (sólo
una pantalla en negro), mientras básico sólo mostrará una barra de progreso durante la
carga. Estándar muestra la habitual animación logotipo de Windows durante el arranque.
clustermodeaddressing Número de procesadores Define el número máximo de procesadores para incluir en una
Avanzada controlador de interrupción programable (APIC) de clúster individual.
dbgtransport Transporte nombre de la imagen Anulaciones utilizando uno de los depuración del núcleo por defecto
transportes (kdcom.dll, Kd1394, Kdusb.dll) y en su lugar utiliza el archivo
dado, permitiendo la depuración especializada transporta a utilizar que no se
suelen compatible con Windows.
driverloadfailurepolicy Fatal, UseErrorControl Describe el comportamiento del cargador para usar cuando el controlador de arranque no
pudo cargar. Fatal impedirá el arranque, mientras que UseErrorControl hace que el
sistema de honrar el comportamiento de error por defecto de conducir, especificado en su
clave de servicio.
ems Boole Da instrucciones al kernel para utilizar EMS también. (Si solo bootems se utiliza, sólo el
cargador de arranque utilizará EMS.)
exportascd Boole Si se establece esta opción, el kernel tratará el archivo de disco de memoria especificada como
una imagen ISO y no un archivo del medio de instalación de Windows (WIM) o la
groupaware Boole Obliga al sistema a utilizar grupos distintos de cero cuando la asociación de la
semilla grupo para nuevos procesos. Sólo se utiliza en Windows de 64 bits.
tamaño del grupo Entero Fuerza el número máximo de procesadores lógicos que pueden ser parte de un
grupo (máximo de 64). Se puede utilizar para obligar a los grupos que se creen en
un sistema que normalmente no les obligaría a existir. Debe ser una potencia de 2,
y se utiliza sólo en Windows de 64 bits.
hal HAL nombre de la imagen Sobre escribe el nombre de archivo por defecto la imagen HAL (hal.dll) para. Esta
opción puede ser útil cuando se arranca una combinación de un HAL comprobado y
verificado kernel (requiere especificar la
núcleo elemento también).
halbreakpoint Boole Hace que el HAL que parar en un punto de interrupción temprana en HAL inicialización.
Lo primero que el núcleo de Windows hace cuando se inicializa es inicializar el HAL, por
lo que este punto de ruptura es el más temprano posible (a menos que se utiliza la
depuración de arranque). Si se utiliza el interruptor sin el modificador / debug, el sistema
provocará una pantalla azul con un código de detención 0x00000078 (EXCEPCIÓN
PHASE0_).
hypervisorbaudrate Velocidad de transmisión en bps Si se utiliza la depuración hipervisor serie, especifica la velocidad de transmisión a utilizar.
hypervisorchannel número de canal de 0 a 62 Si se utiliza FireWire (IEEE 1394) de depuración hipervisor, especifica el número de
canales a utilizar.
hypervisordebugport número de puerto COM Si se utiliza la depuración hipervisor serie, especifica el puerto COM a utilizar.
hypervisordebugtype Serial, 1394 Specifies which hardware port to use for hypervisor debugging.
hypervisordisableslat Boolean Forces the hypervisor to ignore the presence of the Second Layer Address
Translation (SLAT) feature if supported by the processor.
hypervisorlaunchtype Off, Auto Enables loading of the hypervisor on a Hyper-V system, or forces it to be
disabled.
hypervisorpath Hypervisor binary image name Specifies the path of the hypervisor binary.
hypervisoruselargevtlb Boolean Enables the hypervisor to use a larger amount of virtual TLB entries.
increaseuserva Size in MB Aumenta el tamaño del espacio de direcciones de proceso de usuario de 2 GB para el
tamaño especificado, hasta 3 GB (y por lo tanto reduce el tamaño del espacio del sistema).
Dando aplicaciones virtuales de memoria intensivas tales como servidores de bases de un
mayor espacio de direcciones puede mejorar su rendimiento. (Consulte la sección
“Address Space Layout” en el capítulo 9 para obtener más información.)
núcleo Nombre de la imagen del kernel Sobre escribe el nombre de archivo por defecto la imagen del núcleo (Ntoskrnl.exe)
para. Esta opción puede ser útil cuando se arranca una combinación de un HAL
comprobado y verificado kernel (requiere especificar la hal elemento a ser utilizado
también).
LastKnownGood Boole Botas de la última configuración buena conocida, en lugar del conjunto de controles
actual.
loadoptions Parámetros extra de línea de Esta opción se utiliza para agregar otros parámetros de línea de comandos que no
comandos están definidos por elementos BCD. Estos parámetros podrían ser usados para
configurar o definir el funcionamiento de otros componentes en el sistema que podría
no ser capaz de utilizar el BCD (como componentes heredados).
MAXGROUP Boole Maximiza el número de grupos de procesadores que se crean durante la configuración de
la topología de procesador. Véase el Capítulo 3 en la parte 1 para obtener más
información acerca de la selección de grupo y su relación con la NUMA.
msi De manera predeterminada, ForceDisable Permite deshabilitar el apoyo de interrupciones señalizadas por mensajes.
nocrashautoreboot Boole Desactiva el reinicio automático después de un fallo del sistema (pantalla azul).
nointegritychecks Boole Deshabilita las comprobaciones de integridad realizados por Windows al cargar los
conductores. eliminado automáticamente en el siguiente reinicio.
nolowmem Boole Requiere que PAE estar activado y que el sistema de tener más de 4 GB de memoria física.
Si se cumplen estas condiciones, la versión compatible con PAE del núcleo de Windows,
Ntkrnlpa.exe, no utilizará los primeros 4 GB de memoria física. En su lugar, se carga todas
las aplicaciones y controladores de dispositivo y asignar todos los grupos de memoria
desde arriba de ese límite. Este interruptor es útil sólo para probar la compatibilidad de
controladores de dispositivo con los sistemas de memoria de gran tamaño.
numproc Número de procesadores Especifica el número de CPU que se puede utilizar en una
sistema multiprocesador. Ejemplo: / NUMPROC = 2 en un sistema de cuatro vías
será impedir que Windows usando dos de los cuatro procesadores.
nx OptIn, OptOut, AlwaysOff, This option is available only on 32-bit versions of Windows when running
AlwaysOn on processors that support no-execute memory and only when PAE
(explained further in the pae
entry) is also enabled. It enables no-execute protection. Noexecute
protection is always enabled on 64-bit versions of Windows on x64
processors. See Chapter 9 for a description of this behavior.
onecpu Boolean Causes Windows to use only one CPU on a multiprocessor system.
optionsedit Boolean Enables the options editor in the Boot Manager. With this option, Boot
Manager allows the user to interactively set ondemand command-line
options and switches for the current boot. This is equivalent to pressing F10.
osdevice GUID Specifies the device on which the operating system is installed.
pae Default, ForceEnable, Default allows the boot loader to determine whether the system supports
ForceDisable PAE and loads the PAE kernel. ForceEnable forces this behavior, while
ForceDisable forces the loader to load the non–PAE version of the Windows
kernel, even if the system is detected as supporting x86 PAEs and has more
than 4 GB of physical memory.
pciexpress Default, ForceDisable Can be used to disable support for PCI Express buses and devices.
perfmem Size in MB Size of the buffer to allocate for performance data logging. This option acts
similarly to the removememory element, since it prevents Windows from
seeing the size specified as available memory.
quietboot Boolean Indica a Windows no para inicializar el controlador de vídeo VGA responsable de
presentar los gráficos de mapas de bits durante el proceso de arranque. El conductor se
utiliza para mostrar información de progreso de arranque, por lo que su desactivación
deshabilitará la capacidad de Windows para mostrar esta información.
ramdiskimageoffset Desplazamiento en bytes Si el disco de memoria contiene otros datos (como una cabecera) antes de que el sistema de
archivos virtual, da instrucciones al cargador de arranque por dónde empezar a leer el archivo de
ramdisksdipath Nombre del archivo de imagen Especifica el nombre del disco RAM para cargar SDI.
ramdisktftpblocksize Tamaño de bloque Si la carga de un disco RAM WIM desde un servidor de red Trivial FTP (TFTP), especifica
el tamaño de bloque de usar.
ramdisktftpclientport Número de puerto Si se carga un disco RAM WIM desde un servidor TFTP de red, especifica el
puerto.
ramdisktftpwindowsize Tamaño de ventana Si se carga un disco RAM WIM desde un servidor TFTP de red, especifica el tamaño
de la ventana de su uso.
restrictapiccluster número de conglomerado Define el mayor número de clúster APIC para ser utilizado por el sistema.
arranque seguro Minimal, Red, Especifica opciones para un arranque en modo seguro. corresponde
DSRepair mínimos en modo seguro sin una red, red de modo seguro con funciones de
red, y DSRepair a modo seguro con dicho modo. (El modo seguro se
describe más adelante en este capítulo).
safebootalternateshell Boole Indica a Windows para usar el programa especificado por el HKLM \ SYSTEM \
CurrentControlSet \ Valor de control \ SafeBoot \ AlternateShell como la consola
gráfica en lugar de la predeterminada, que es el Explorador de Windows. Esta opción
se denomina modo seguro con símbolo del sistema en el menú de arranque
alternativo.
llamada de socorro Boole Causas de Windows a la lista los controladores de dispositivos marcados para cargar en el
arranque y después para mostrar el número de versión del sistema (incluyendo el número de
compilación), la cantidad de memoria física, y el número de procesadores.
stampdisks Boole Especifica que Winload escribirá una firma de disco MBR en un disco RAW
durante el arranque de Windows PE (Entorno de preinstalación). Esto puede ser
necesario en los entornos de despliegue con el fin de crear una asignación de
operar discos duros enumerados por el sistema para discos duros de
BIOS-enumerado saber qué disco debe ser el disco del sistema.
systemroot Cuerda Especifica la ruta, con respecto a osdevice, en el que está instalado
el sistema operativo.
TargetName Nombre Depuración de USB 2.0, asigna un nombre a la máquina que se está
depurando.
tpmbootentropy De manera predeterminada, Obliga a una política específica TPM arranque entropía de ser seleccionados por el
ForceDisable, ForceEnable cargador de arranque y se transmite al núcleo. TPM Boot Entropy, cuando se utiliza,
semillas de generador de números aleatorios del núcleo (RNG) con datos obtenidos
de la TPM (si está presente).
usefirmwarepcisettings Boole Detiene Windows desde la asignación dinámica de recursos IO / IRQ a los dispositivos
PCI y deja los dispositivos configurados por el BIOS. Véase el artículo 148501 de
Microsoft Knowledge Base para obtener más información.
uselegacyapicmode Boole el uso de las fuerzas de la funcionalidad básica APIC a pesar de que los informes de
chipset extendieron funcionalidad APIC como presentes. Se utiliza en casos de erratas
de hardware y / o incompatibilidad.
useplatformclock Boole el uso de fuerzas de fuente de reloj de las plataformas como contador de rendimiento del
sistema.
vga Boole Fuerzas de Windows para utilizar el controlador de pantalla VGA en lugar del controlador de
alto rendimiento de terceros.
winpe Boole Utilizado por Windows PE, esta opción hace que el gestor de configuración para cargar la
sección sistema de registro como una colmena volátil tal que los cambios realizados en la
memoria no se guardan de nuevo a la imagen de la colmena.
x2apicpolicy Desactivada, activada por Especifica si la funcionalidad extendida APIC debe utilizarse si el chipset soporta.
defecto Personas con discapacidad equivale a establecer uselegacyapicmode, mientras que las
fuerzas Habilitado funcionalidad ACPI en incluso si se detectan erratas. Por defecto
utiliza las capacidades reportadas por el chipset (a menos erratas están presentes).
xsavepolicy Entero Fuerza la política xSave dada para ser cargados desde el controlador de recursos
Política xSave (Hwpolicy.sys).
xsaveaddfeature0-7 Entero Utilizado durante las pruebas de apoyo a xSave en procesadores Intel modernos;
permite fingiendo que ciertas características del procesador están presentes cuando,
de hecho, no lo son. Esto ayuda a aumentar el tamaño de la estructura de contexto y
confirma que las aplicaciones funcionan correctamente con características extendidas
que puedan aparecer en el futuro. Sin funcionalidad adicional real estará presente, sin
embargo.
xsaveremovefeature Entero Fuerza la función xSave introducido no ser reportados al núcleo, a pesar
de que el procesador lo soporta.
xsaveprocessorsmask Entero Máscara de bits de los procesadores que la política debe aplicarse a xSave.
Si el usuario no selecciona una entrada en el menú de selección dentro del período de tiempo de espera de la BCD especifica,
Bootmgr elige la selección predeterminada especificada en el BCD (si sólo hay una entrada, se elige de inmediato éste). Una vez
realizada la selección de arranque, Bootmgr carga el cargador de arranque asociado a esa entrada, que será Winload.exe para las
instalaciones de Windows.
Winload.exe también contiene código que consulta BIOS ACPI del sistema para recuperar aparato básico y la información de
configuración. Esta información incluye lo siguiente:
■ información de dispositivo heredado, como autobuses (por ejemplo, ISA, PCI, EISA, Micro Channel Architecture [MCA]), los ratones, los
Esta información se recopila en las estructuras internas de datos que serán almacenados bajo el HARDWARE \ HKLM \ DESCRIPCIÓN registro más
tarde en el arranque. Esto es sobre todo una clave legado como la configuración de CMOS y ajustes de configuración del BIOS unidad de disco
detectada, así como los autobuses de legado, ya no son compatibles con Windows, y esta información se almacena principalmente por razones de
compatibilidad. Hoy en día, es la base de datos de gestor de Plug and Play que almacena la verdadera información sobre el hardware.
A continuación, Winload comienza a cargar los archivos de la volumen de inicio necesario para iniciar el arranque del núcleo. El volumen
de inicio es el volumen que corresponde a la partición en la que se inicia el directorio del sistema (normalmente \ Windows) de la instalación
1. Carga el kernel apropiado e imágenes HAL (Ntoskrnl.exe y Hal.dll por defecto), así como
cualquiera de sus dependencias. Si Winload no se puede cargar cualquiera de estos archivos, se imprime el mensaje “Windows no
puede iniciarse porque el siguiente archivo se encuentra o está dañado”, seguido del nombre del archivo.
2. Se lee en el archivo de fuentes VGA (por defecto, vgaoem.fon). Si este archivo falla, el mismo mensaje de error como
3. Lee en los archivos NLS (Sistema Nacional de Idiomas) utilizados para la internacionalización. Por defecto,
4. Lee en la colmena registro del sistema, \ Windows \ System32 \ Config \ System, de modo que pueda deter-
mina que necesitan controladores de dispositivo que se cargue para realizar el arranque. (Una colmena es un archivo que contiene un
subárbol del Registro. Encontrará más detalles sobre el registro en el Capítulo 4, “Mecanismos de gestión”, en la Parte 1.)
5. Escanea la sección del Registro SISTEMA en memoria y localiza todas las controladores de dispositivos de arranque. Dispositivo de arranque
los conductores son controladores necesarios para arrancar el sistema. Estos controladores están indicados en el registro
CurrentControlSet \ Services. Por ejemplo, Servicios tiene una subclave denominada fvevol para el conductor BitLocker, que se puede ver
en la figura 13-2. (Para una descripción detallada de las entradas de los servicios de registro, consulte la sección “Servicios” en el Capítulo
4 de la parte 1.)
6. Agrega el controlador del sistema de archivos que es responsable de la implementación del código para el tipo de
(NTFS) en el que reside el directorio de instalación a la lista de controladores de arranque para cargar. Winload debe cargar
este controlador en este momento; si no lo hiciera, el núcleo requeriría los conductores para cargar ellos mismos, un requisito
7. Carga los controladores de arranque, que sólo debe ser conductores que, como el controlador de sistema de archivos para el
volumen de inicio, introduciría una dependencia circular si se requiere el kernel para cargarlos. Para indicar el progreso de la carga,
Winload actualiza una barra de progreso que se verá a continuación el texto “Iniciando Windows”. Si el llamada de socorro opción se
especifica en el BCD, Winload no muestra la barra de progreso, sino que muestra los nombres de archivo de cada controlador de
arranque. Tenga en cuenta que los conductores se cargan pero no inicializados en este momento, se inicializan más adelante en la
secuencia de arranque.
Para ver los pasos 1 y 8, Winload también implementa parte del Código de modo de núcleo de firma (KMCS) infraestructura, que fue descrito en el
capítulo 3 de la parte 1, mediante la aplicación de que todos los controladores de arranque se firman en Windows de 64 bits. Además, el sistema se
Esta acción es el fin del papel de Winload en el proceso de arranque. En este punto, Winload llama a la función principal de
(NVRAM) mediante la instalación de Windows. El código de arranque lee el contenido de la BCD, que también se almacenan en la memoria NVRAM. La
herramienta Bcdedit.exe se mencionó anteriormente también tiene la capacidad de variables NVRAM abstractas del firmware en el BCD, lo que permite una
aplicaciones adicionales para cargar. Sin embargo, para proporcionar una interfaz de usuario consistente entre los sistemas de BIOS y sistemas UEFI,
Windows establece un 2-segundos de tiempo de espera para seleccionar el Administrador de inicio de EFI, después de lo cual la EFI-versión de cargas
La detección de hardware se produce siguiente, donde el cargador de arranque utiliza interfaces UEFI para determinar el número y tipo de
■ Adaptadores de red
■ adaptadores de vídeo
■ Teclados
■ controladores de disco
■ Dispositivos de almacenamiento
En los sistemas UEFI, todas las operaciones y los programas se ejecutan en el modo de la CPU nativa con paginación habilitada y ninguna parte
del proceso de inicio de Windows se ejecuta en modo de 16 bits. Tenga en cuenta que a pesar de EFI se admite en los sistemas de 32 bits y 64 bits,
Del mismo modo que lo hace Bootmgr en sistemas x86 y x64, el gestor de arranque EFI presenta un menú de selecciones de inicio con un tiempo
de espera opcional. Una vez que se ha realizado una selección de arranque, el cargador se desplaza al subdirectorio en la partición del sistema EFI
correspondiente a la selección y carga la versión EFI del cargador de arranque de Windows (Winload.efi).
La especificación UEFI requiere que el sistema tiene una partición designada como la partición del sistema EFI que está formateado
con el sistema de archivos FAT y se encuentra entre 100 MB y 1 GB de tamaño o hasta 1 por ciento del tamaño del disco, y cada
instalación de Windows tiene un subdirectorio en la partición del sistema EFI bajo EFI \ Microsoft.
Tenga en cuenta que gracias al proceso de arranque unificado y el modelo presente en Windows, los componentes de la Tabla 13-1 se aplican de
manera casi idéntica a los sistemas de UEFI, excepto que los que terminan en. exe terminar en. EFI, y utilizan las API y servicios de EFI en lugar de
interrupciones de la BIOS. Otra diferencia es que, para evitar limitaciones del formato de partición MBR (incluyendo un máximo de cuatro particiones
por disco), los sistemas de UEFI utilizan el formato GPT (GUID Partition Table), que utiliza los GUID para identificar diferentes particiones y sus roles
en el sistema.
Adaptador de Bus Host (HBA) o a través de Ethernet. Estos dispositivos, sin embargo, son diferentes de almacenamiento conectado en red tradicional
(NAS), ya que proporcionan un acceso por bloques a los discos, a diferencia del acceso basado en lógica sobre un sistema de archivos de red que emplea
NAS. Por lo tanto, un disco de conexión iSCSI aparece como cualquier otra unidad de disco, tanto para el gestor de arranque, así como para el sistema
operativo, siempre y cuando se utiliza el iniciador iSCSI de Microsoft para proporcionar acceso a través de una conexión Ethernet. Mediante el uso de
discos habilitados para iSCSI lugar de almacenamiento local, las empresas pueden ahorrar en espacio, consumo de energía y refrigeración.
Aunque Windows ha apoyado tradicionalmente el arranque sólo de discos conectados localmente, o el arranque a través de red PXE,
versiones modernas de Windows también son capaces de arrancar de forma nativa desde dispositivos iSCSI a través de un mecanismo
llamado iSCSI. El gestor de arranque (Winload.exe) contiene una pila de red minimalista acuerdo con la interfaz de dispositivo de red universal
(UNDI) estándar, lo que permite a los ROMs NIC compatibles para responder a las 13h de interrupción (el disco BIOS heredado / interrupción
de E O) y convierten a las solicitudes red I / O. En los sistemas EFI, el controlador de interfaz de red proporcionado por el fabricante se utiliza
Por último, para conocer la localización, la ruta y la información de autenticación para el disco remoto, el cargador de arranque también lee un arranque
Tabla de firmware de iSCSI (iBFT) que debe estar presente en la memoria física (por lo general expuesta a través de ACPI). Además, la instalación de
Windows también tiene la capacidad de leer esta tabla para determinar los dispositivos iSCSI arranque y puede permitir la instalación directa en un
dispositivo de este tipo, de modo que no se requiere ninguna imagen. En combinación con el iniciador iSCSI de Microsoft, esto es todo lo que se requiere
para Windows para iniciar desde el iSCSI, como se muestra en la Figura 13-3.
El iniciador iSCSI
Int13
TCPIP
Tabla
UNDI
FIB NDIS
NIC
minipuerto NDIS
NIC
sistema y de la partición de arranque, un puntero a las tablas de memoria Winload genera para describir la memoria física en el sistema, un
arranque Winload cargado, así como otro tipo de información relacionada con el proceso de arranque realizado hasta este punto.
variable. El núcleo descarta el bloque de parámetros después de la primera fase de arranque, por lo que la única manera de ver el contenido de
la estructura es adjuntar un depurador del núcleo antes de arrancar y romperse en el punto de interrupción inicial de núcleo depurador. Si usted
es capaz de hacerlo, puede utilizar la dt comando para volcar el bloque, como se muestra:
+ 0x000 OsMajorVersion :6
+ 0x004 OsMinorVersion :1
+ Tamaño 0x008 : 0x88
+ 0x00c reservados :0
+ 0x010 LoadOrderListHead : _LIST_ENTRY [0x8085b4c8 - 0x80869c70]
+ 0x018 MemoryDescriptorListHead: _LIST_ENTRY [0x80a00000 - 0x80a00de8]
+ 0x044 ArcBootDeviceName : 0x8082d9a0 "multi (0) disk (0) rdisk (0) partición (4)"
+ 0x048 ArcHalDeviceName : 0x8082d788 "multi (0) disk (0) rdisk (0) partición (4)"
+ 0x04c NtBootPathName : 0x8082d828 "\ Windows \"
+ 0x050 NtHalPathName : 0x80826358 "\"
+ 0x054 LoadOptions : 0x8080e1b0 "noexecute = ALWAYSON DEBUGPORT = COM1
BAUDRATE = 115200"
2 00000004 HALCachedMemory
...
4a32 00000023 NlsData
4a55 00000002 BootDriver
4a57 00000026 BootDriver
4a7d 00000014 BootDriver
Resumen de tipos de
memoria páginas
Comienza entonces ntoskrnl fase 0, el primero de su proceso de inicialización de dos fases ( fase 1 es el segundo). La mayoría de los
subsistemas ejecutivas tienen una función de inicialización que toma un parámetro que identifica qué fase se está ejecutando.
Durante la fase 0, las interrupciones están deshabilitadas. El propósito de esta fase es la construcción de las estructuras rudimentarias necesarios
para que los servicios que se necesitan en la fase 1 que se invoque. principales llamadas a funciones de Ntoskrnl KiSystemStartup, que a su vez las
llamadas HalInitializeProcessor y KiInitializeKernel para cada CPU. KiInitializeKernel, si se ejecuta en la CPU de arranque, lleva a cabo la inicialización del
núcleo de todo el sistema, tales como la inicialización de listas internas y otras estructuras de datos que comparten las CPU. También comprueba si la
virtualización se especificó como una opción de BCD ( hypervisorlaunchtype), y si la CPU compatible con la tecnología de virtualización de hardware. La
primera instancia de KiInitializeKernel a continuación, llama a la función responsable de orquestar la fase 0, InitBootProcessor, mientras que los
InitBootProcessor starts by initializing the pool look-aside pointers for the initial CPU and by checking for and honoring the BCD burnmemory
boot option, where it discards the amount of physical memory the value specifies. It then performs enough initialization of the NLS files that
were loaded by Winload (described earlier) to allow Unicode to ANSI and OEM translation to work. Next, it continues by calling the HAL
function HalInitSystem, which gives the HAL a chance to gain system control before Windows performs significant further initialization. One
responsibility of HalInitSystem es preparar el controlador de interrupciones del sistema de cada CPU para interrupciones y para configurar la
interrupción de temporizador de reloj de intervalo, que se utiliza para la contabilidad de tiempo de CPU. (Vea la sección de “Quantum
Contabilidad” en el Capítulo 5, “Los procesos, subprocesos y puestos de trabajo” en la parte 1 para más información sobre la CPU de
Recíprocos se utilizan para la optimización de las divisiones en la mayoría de los procesadores modernos. Pueden realizar multiplicaciones más
rápido, y porque Windows debe dividir el coste actual de 64 bits con el fin de averiguar qué temporizadores deben expirar, este cálculo estático
reduce la latencia de interrupción cuando se dispara el intervalo de reloj. InitBootProcessor luego continúa estableciendo la ruta raíz del sistema y
la imagen del núcleo búsqueda de la localización de las cadenas de mensajes de choque se muestra en las pantallas azules, almacenamiento en
caché de su ubicación para evitar levantar las cuerdas durante un accidente, lo que podría ser peligroso y poco fiable. Siguiente, InitBootProcessor
inicializar la parte funcionalidad cuota del gestor de procesos y lee el vector control. Esta estructura de datos contiene más de 150 opciones del
núcleo de ajuste que forman parte de la clave HKLM \ SYSTEM \ CurrentControlSet \ Control clave de registro, incluyendo información tal como la
InitBootProcessor ya está listo para llamar a la fase 0 rutinas de inicialización para el ejecutivo, verificación de controladores, y el
administrador de memoria. Estos componentes realizan las siguientes pasos de inicialización:
1. El ejecutivo inicializa varios bloqueos internos, recursos, listas, y las variables y valida que
el tipo de conjunto de productos en el registro es válida, desalentando la modificación ocasional del registro con el fin de
“mejorar” a un SKU de Windows que no era en realidad compró. Este es sólo uno de los muchos dichos controles en el núcleo.
2. Verificación de controladores, si está habilitado, inicializa diversas configuraciones y comportamientos basados en el estado actual
del sistema (por ejemplo, si el modo seguro está activado) y las opciones de verificación. También recoge que los conductores a objetivo para
3. El administrador de memoria construye tablas de páginas y las estructuras de datos internas que son necesarias
para proporcionar servicios básicos de memoria. También construye y se reserva una zona para la caché de archivos del sistema y crea
áreas de memoria para las piscinas paginados y no paginados (descritos en el capítulo 10). Los otros subsistemas ejecutivos, el núcleo y
controladores de dispositivo utilizan estos dos grupos de memoria de reparto de su estructura de datos.
Siguiente, InitBootProcessor llamadas HalInitializeBios para configurar la parte de código de emulación del BIOS de la HAL. Este código se utiliza tanto
en sistemas reales de BIOS, así como en sistemas EFI para permitir el acceso (o para emular el acceso) a las interrupciones en modo real de 16 bits y
memoria, que se utilizan principalmente por Bootvid para mostrar la pantalla de arranque VGA temprana y la pantalla de comprobación de errores .
Después de la función regresa, el kernel inicializa la biblioteca Bootvid y muestra los mensajes de estado de arranque primeros llamando InbvEnableBootDriver
InbvDriverInitailize.
En este punto, InitBootProcessor enumera los controladores de arranque de arranque que fueron cargados por Winload y llamadas DbgLoadImageSymbols
para informar al depurador del núcleo (si está conectado) para cargar símbolos para cada uno de estos controladores. Si el depurador anfitrión ha
configurado el romper la carga de símbolos opción, este será el primer punto de un depurador de núcleo para hacerse con el control del sistema. InitBootProcessor
llama ahora
HvlInitSystem, que intenta conectar con el hipervisor en el caso de Windows se esté ejecutando en el interior de particiones hijo de un
sistema host de Hyper-V. Cuando la función devuelve, llama HeadlessInit para inicializar la consola de serie si la máquina se ha configurado
Siguiente, InitBootProcessor construye la información de versiones que se utilizará más adelante en el proceso de arranque, como por ejemplo el
número de compilación, versión del paquete de servicio, y el estado de la versión beta. A continuación, copia el NLS
indicadores globales especifican crear uno. (Para más información sobre los indicadores globales, consulte el Capítulo 3 en la Parte 1.)
Finalmente, InitBootProcessor llama al administrador de objetos, monitor de referencia de seguridad, gestor de procesos, marco de la
depuración de modo de usuario y el administrador Plug and Play. Estos componentes realizan las siguientes pasos de inicialización:
1. Durante la inicialización administrador de objetos, los objetos que son necesarios para construir el objeto
gestor de espacio de nombres se definen de manera que otros subsistemas pueden insertar objetos en ella. Una tabla de identificador se crea de
2. El monitor de referencia de seguridad inicializa el objeto de tipo de token y luego utiliza el objeto a
crear y preparar el primer contador cuenta del sistema local para la asignación al proceso inicial. (Véase el Capítulo 6,
enhebrar tipos de objetos y la creación de listas de realizar el seguimiento de procesos activos y los hilos. El gestor de proceso también crea
un objeto de proceso para el proceso inicial y la nombra Ocioso. Como su último paso, el administrador de procesos crea el proceso del
Phase1Initialization. Este hilo no empezar a correr de inmediato debido a las interrupciones todavía están deshabilitadas.
4. El marco en modo de usuario depuración crea la definición del tipo de objeto de depuración que es
utilizado para la fijación de un depurador a un proceso y recibir eventos depurador. Para obtener más información sobre la depuración de modo
5. El Plug and Play del gestor de la fase 0 de inicialización se realiza a continuación, lo que implica simplemente
inicializar un recurso ejecutiva se utiliza para sincronizar el acceso a los recursos del bus.
Cuando el control vuelve a KiInitializeKernel, el último paso es asignar la pila DPC para el procesador actual y la I / O mapa privilegio
ahorrar área (sólo en sistemas x86), después de lo cual el control avanza a la Ocioso bucle, que entonces hace que el hilo sistema creado en
el paso 3 de la descripción del proceso anterior para comenzar la ejecución de la fase 1. (procesadores secundarios esperar para comenzar
1. Phase1InitializationDiscard, el cual, como su nombre lo indica, descarta el código que forma parte de la
2. El hilo de inicialización establece su prioridad a 31, la más alta posible, con el fin de evitar
con el mapeo más optimizada entre procesadores lógicos y grupos de procesador, teniendo en cuenta las localidades NUMA y
5. El controlador de vídeo de arranque se llama, que a su vez muestra la pantalla de inicio de Windows, que por
por defecto consiste en una pantalla en negro y una barra de progreso. Si el quietboot se utilizó la opción de arranque, no se producirá este
paso.
pantalla a través de Bootvid si el llamada de socorro opción de arranque estaba habilitado. Esto incluye la información completa versión, el
el sistema arranca.
y HalAllProcessorsStarted. El número de procesadores que se ha inicializado y apoyado depende de una combinación del
recuento físico real, la información de licencia del SKU instalada de Windows, las opciones de arranque como numproc y ONECPU,
y si la partición dinámica está activada (sistemas de servidor solamente). Después de que todos los procesadores
disponibles han inicializado, la afinidad del proceso del sistema se actualiza para incluir todos los procesadores.
10. El administrador de objetos crea el directorio raíz del espacio de nombres (\), \ Tipos de objeto de directorio, y el
directorio de nombre de dispositivo de mapeo DOS (\ global ??). A continuación, crea el enlace simbólico \ DosDevices que apunta en el directorio
11. El ejecutivo se llama para crear los tipos de objetos ejecutivos, incluyendo semáforos, mutex,
acontecimiento, y el temporizador.
12. El gestor de I / O es llamada para crear los tipos de objeto de gestión de I / O, incluyendo dispositivo, conductor,
13. La biblioteca depurador de núcleo finaliza la inicialización de los ajustes y parámetros de depuración si el
14. El administrador de transacciones también crea sus tipos de objetos, tales como el reclutamiento, hombre-recursos
15. El núcleo inicializa planificador (despachador) estructuras de datos y el envío de servicio del sistema
mesa.
dieciséis. Las estructuras de datos de la biblioteca de modo de usuario de depuración (Dbgk) se inicializan.
17. Si el comprobador de controladores está habilitada y, dependiendo de las opciones de verificación, la verificación de la piscina es en-
espacio de nombres e inicializa las estructuras de datos de auditoría si está habilitada la auditoría.
20. El administrador de memoria se llama para crear el \ Device \ PhysicalMemory sección de objeto y la
subprocesos de trabajo del sistema de administrador de memoria (que se explican en el capítulo 10).
21. mesas de NLS se asignan al espacio del sistema de modo que puedan ser fácilmente mapeados por el modo de usuario
procesos.
23. El administrador de caché inicializa las estructuras de datos de caché de sistema de archivos y crea su trabajador
trapos.
24. El administrador de configuración crea el objeto clave \ registro en el espacio de nombres del Administrador de objetos
y abre el subárbol del sistema en la memoria como un archivo de sección adecuada. A continuación, copia los datos del árbol de hardware
25. La biblioteca de gráficos de alta resolución de arranque se inicia, a menos que haya sido desactivado a través de la
26. El gestor de erratas se inicia y explora el registro de información de erratas, así como el INF
(Archivo del controlador de la instalación, que se describe en el capítulo 8) de base de datos que contiene erratas de varios conductores.
31. Fase 1 de la información depurador-específica del transporte se realiza mediante una llamada al KdDebugger-
32. El administrador de Plug and Play llama al BIOS Plug and Play.
33. La avanzada llamada de procedimiento local (ALPC) subsistema inicializa el tipo de puerto ALPC y ALPC
temporizador de espera objetos tipo de puerto. Los objetos más viejos LPC se establecen como alias.
34. Si el sistema se inicia con el registro de inicio (con el BCD bootlog opcional), el archivo de registro de arranque se inicializa. Si el sistema se
inicia en modo seguro, una cadena se muestra en la pantalla de arranque con el tipo de corriente de arranque en modo seguro.
35. El ejecutivo se llama para ejecutar la segunda fase de inicialización, donde se configura parte de
la funcionalidad de licencia de Windows en el núcleo, tales como la validación de la configuración del registro que contienen datos de licencia.
Además, si está presente (como los resultados de diagnóstico de memoria u hoja de vida a partir de información de hibernación) de datos
persistente de aplicaciones de arranque, los archivos de registro e información pertinentes se escriben en el disco o en el registro.
se crea en el espacio de nombres, el cual será utilizado más adelante para albergar los objetos de sección para los distintos archivos NLS
asignados en memoria.
37. El administrador de energía se llama para inicializar de nuevo. Esta vez ella se establece el apoyo a las peticiones de potencia,
el canal ALPC para las notificaciones de brillo, y soporte el perfil de devolución de llamada.
38. La E / S gestor de inicialización tiene lugar ahora. Esta etapa es una fase compleja de sistema
El gestor de I / O inicializa primero diversas estructuras internas y crea los tipos de objetos de controlador y el
dispositivo. Luego llama al gestor de Plug and Play, encargado de la energía, y HAL para comenzar las diversas
etapas de la enumeración de dispositivos dinámicos e inicialización. (Debido a que este proceso es complejo y
específico para el sistema de E / S, cubrimos los detalles en el Capítulo 8.) A continuación, el subsistema de
Windows (WMI) es inicializado, que proporciona soporte WMI para los controladores de dispositivos. (Consulte
la sección “Windows Management Instrumentation” en el Capítulo 4 de la parte 1 para obtener más
información.) Esto también inicializa el seguimiento de eventos para Windows (ETW). A continuación, todos los
controladores de arranque de arranque están llamados a desempeñar su inicialización específica del
controlador, y luego los controladores de dispositivo del sistema de arranque se cargan e inicializan.
39. El administrador de transacciones establece el preprocesador traza software de Windows (WPP) y ETW
40. Ahora que se cargan los controladores de arranque de arranque y el sistema de arranque, el gestor de erratas carga el INF
base de datos con la errata conductor y comienza a analizarlo, lo que incluye la aplicación de soluciones de configuración PCI
registro.
41. Si el ordenador está arrancando en modo seguro, este hecho se registra en el registro.
42. A no ser desactivado de forma explícita en el registro, la paginación de código en modo kernel (en Ntoskrnl y conductores)
está habilitado.
43. El gestor de configuración se asegura de que todos los procesadores en un sistema SMP son idénticos en
44. En los sistemas de 32 bits, VDM apoyo (Virtual Dos Machine) se inicializa, que incluye determinismo
45. El administrador de procesos se llama para establecer la limitación de velocidad de empleos, inicializar el entorno estático
para procesos protegido, y buscar los diversos puntos de entrada definidos por el sistema en la biblioteca del sistema
usermode (Ntdll.dll).
48. El monitor de referencia de seguridad se llama para crear el hilo de comandos del servidor que comu-
nicates con LSASS. (Consulte la sección “Componentes del sistema de seguridad” en el capítulo 6 de la parte 1 para más información sobre
49. El proceso del Administrador de sesión (SMS) (introducido en el capítulo 2, “Arquitectura del sistema”, en la parte 1)
Está empezado. Smss es responsable de crear el entorno de modo de usuario que proporciona la interfaz visible para
Windows sus pasos de inicialización se trata en la siguiente sección.
50. Los valores de entropía de arranque TPM se consultan. Estos valores se pueden consultar sólo una vez por cada inicio,
y, normalmente, el controlador del sistema TPM debería haberles consultado por ahora, pero si este controlador no había estado
funcionando por alguna razón (tal vez el usuario ha deshabilitado), los valores unqueried todavía estaría disponible. Por lo tanto, el
núcleo ellos consulta también manualmente para evitar esta situación, y en escenarios normales, propia consulta del kernel debería
fallar.
51. Toda la memoria usada por el bloque de parámetros cargador y todas sus referencias está ahora liberado.
Como paso final antes de considerar el ejecutivo y el núcleo de inicialización completa, la fase 1 hilo de inicialización espera a que el mango para
el proceso del Administrador de sesión con un valor de tiempo de espera de 5 segundos. Si el proceso del Administrador de sesión antes de que las
Si los tiempos de 5 segundos de espera fuera (es decir, si transcurren 5 segundos), se supone que el gestor de sesiones se han iniciado con éxito, y
la función de inicialización de fase 1 Las llamadas a funciones hilo página cero del administrador de memoria (que se explica en el capítulo 10). Por lo
tanto, este subproceso del sistema se convierte en el hilo de la página cero para el resto de la vida del sistema.
confiable del sistema operativo. En segundo lugar, es un SMSs nativo solicitud. Debido a que es un componente del sistema operativo de confianza, SMSs
puede realizar acciones algunos otros procesos pueden llevar a cabo, tales como la creación de tokens de seguridad. Debido a que es una aplicación
nativa, los SMS no utiliza las API de Windows-que utiliza las API de ejecutivos en los núcleos conocidos colectivamente como la API nativa de Windows.
Smss no utiliza las API de Win32 porque el subsistema de Windows no se está ejecutando cuando se pone en marcha smss. De hecho, una de las
Smss continuación, llama al subsistema ejecutivo encargado de la configuración para terminar la inicialización del registro, el registro de dar contenido a
cabo para incluir todas sus claves. El gestor de configuración está programado para saber dónde se almacenan las secciones del registro central en el disco
(con exclusión de las colmenas que corresponde a los perfiles de usuario), y registra las rutas de acceso a las colmenas que carga en el HKLM \ SYSTEM \
1. Marca a sí misma como un proceso crítico y su hilo principal como un hilo crítico. Como se discutió en pítulo
lo 5 de la parte 1, esto hará que el núcleo se bloquee el sistema si SMSs se cierra inesperadamente. smss
2. crea prefijos protegidas para los pilotos de buzón interproceso y del sistema de archivos tubería con nombre, creando giado
privile- caminos para los administradores y cuentas de servicio para comunicarse a través de esos caminos. Véase el Capítulo 7, “Redes”,
3. llamadas SmpInit, el cual ajusta el nivel máximo de concurrencia de los SMS, es decir, el máximo
número de sesiones paralelas que serán creados por el desove copias de SMSs en otras sesiones. Esto es al menos
4. SmpInit a continuación, crea un objeto puerto ALPC (\ SmApiPort) para recibir solicitudes de los clientes (por ejemplo, a
5. SmpInit llamadas SmpLoadDataFromRegistry, que comienza con la creación del entorno por defecto
variables para el sistema, y la variable SAFEBOOT si el sistema se ha arrancado en modo seguro.
6. SmpLoadDataFromRegistry llamadas SmpInitializeDosDevices para definir los enlaces simbólicos para MS-
Control \ Session Manager \ BootExecute con SmpExecuteCommand. Por lo general, este valor contiene una orden para
eliminar las operaciones siguiendo las indicaciones de HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \
PendingFileRenameOperations2.
10. SmpLoadDataFromRegistry llamadas SmpCreatePagingFiles para crear los archivos de paginación adicionales.
la configuración del archivo de paginación se almacena en HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \
Registro. El administrador de configuración construye el resto del registro mediante la carga de las secciones del Registro para las
claves HKLM \ SOFTWARE HKLM \ SAM, HKLM \ SECURITY, y. Aunque HKLM \ SYSTEM \ CurrentControlSet \ Control \ hivelist
localiza los archivos de la colmena en el disco, el gestor de configuración está codificado para buscarlos en \ Windows \ System32 \
Config.
las variables de entorno de que se definen en HKLM \ SYSTEM \ CurrentControlSet \ Administrador de sesión \ Medio
Ambiente, así como las variables de entorno específicos del procesador como NUMBER_ procesadores,
PROCESSOR_ARCHITECTURE y PROCESSOR_LEVEL.
Control \ Session Manager \ SetupExecute con SmpExecuteCommand. Normalmente, este valor se establece en caso de que Windows
sistemas que se pondrán en marcha en cada sesión (tanto de forma inmediata y diferida), así como el comando de inicialización de
la sesión 0 (que, por defecto, es poner en marcha el proceso Wininit.exe). El comando de inicialización se puede anular mediante la
creación de un valor de cadena llamado S0InitialCommand en HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager y se
sección de objetos para ellos en el directorio \ KnownDLLs del espacio de nombres del Administrador de objetos. La lista de archivos DLL
considerados conocido se encuentra en HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ KnownDLLs, y la ruta de
acceso al directorio en el que las DLL están ubicados se almacena en el valor DllDirectory de la llave. En los sistemas 64 bits, DLL de 32
SYSTEMPARTITION valor almacenado en HKLM \ SYSTEM \ Setup, que se almacena en formato de ruta administrador de objetos nativo NT, a
una letra de unidad del volumen almacenado en el valor BootDir. Entre otros componentes, Windows Update utiliza esta clave del registro
17. En este punto, SmpLoadDataFromRegistry vuelve a SmpInit, que devuelve al hilo principal
punto de entrada. Smss crea entonces el número de sesiones iniciales que fueron definidos (por lo general, sólo una, la sesión 0,
pero se puede cambiar este número por el valor del registro NumberOfInitialSessions en la clave de registro smss se mencionó
anteriormente) llamando SmpCreateInitialSession, que crea un proceso de SMS para cada sesión de usuario. El trabajo principal de esta
18. Como parte de la inicialización de Csrss, se carga la parte de modo de núcleo del subsistema de Windows
(Win32k.sys). El código de inicialización en Win32k.sys utiliza el controlador de vídeo para cambiar la pantalla a la resolución definida por
el perfil por defecto, por lo que este es el punto en el que eligen la pantalla cambia desde el modo VGA del controlador de vídeo de
19. Mientras tanto, cada uno dio lugar a SMSs en una sesión de usuario diferente comienza la otra pro subsistema
cesos, como Psxss Si se ha instalado la función Subsistema para aplicaciones basadas en UNIX. (Véase el Capítulo 3 en la parte 1
20. La primera sesión de SMS desde 0 ejecuta el comando de inicialización de la sesión 0 (que se describe en el paso
14), por defecto de iniciar el proceso de inicialización de Windows (Wininit). Otros casos SMSs iniciar el proceso del gestor de inicio
de sesión interactivo (Winlogon), que, a diferencia de Wininit, es codificada. Los pasos de puesta en marcha de Wininit y Winlogon
se describen en breve.
Después de realizar estos pasos de inicialización, el hilo principal en SMSs espera siempre en el identificador de proceso de
Winlogon, mientras que los otros hilos ALPC esperan mensajes para crear nuevas sesiones o subsistemas. Si bien Wininit o Csrss
terminan inesperadamente, el kernel se bloquea el sistema, ya que estos procesos están marcados como crítico. Si Winlogon termina
Wininit entonces realiza sus pasos de puesta en marcha, tales como la creación de la estación de ventana y escritorio objetos iniciales. También
configura la sesión 0 ventana de gancho, que es utilizado por el servicio interactivo de detección de Servicios (UI0Detect.exe) para proporcionar
compatibilidad con versiones anteriores con los servicios interactivos. (Véase el Capítulo 4 de la parte 1 para obtener más información sobre los servicios.)
Wininit crea entonces el administrador de control de servicios de proceso (SMC) (% SystemRoot% \ System32 \ Services.exe), que carga todos los servicios
y controladores de dispositivos de marcado para el inicio automático, y el subsistema de autoridad de seguridad local (LSASS) proceso (% SystemRoot% \
System32 \ LSASS.exe). Por último, se carga el gestor de sesión local (% SystemRoot% \ System32 \ lsm.exe). En la sesión 1 y más allá, en lugar de
Winlogon se ejecuta y carga los proveedores de credenciales registrados para el sistema (por defecto, el proveedor de credenciales Microsoft admite
basada en contraseña y los inicios de sesión basados en tarjetas inteligentes) en un proceso hijo llamado LogonUI (% SystemRoot% \ System32 \
Logonui.exe), que se encarga de mostrar la interfaz de inicio de sesión. (Para más detalles sobre la secuencia de arranque para Wininit, Winlogon y LSASS,
Después de que el SMC inicializa los servicios de inicio automático y los conductores y un usuario ha iniciado sesión correctamente en la consola,
el SMC considera que el arranque con éxito. último conjunto de control conocida del registro (como se indica en HKLM \ SYSTEM \ Select \
recibe un inicio de sesión y valida el inicio de sesión (un proceso por el cual se puede encontrar más información en la sección “Conexión Usuario
Pasos” en el Capítulo 6 de la parte 1), Winlogon carga la sección del Registro del perfil del usuario inicie sesión y mapas a HKCU. A continuación,
establece las variables de entorno del usuario que se almacenan en HKCU \ Ambiente y notifica a los paquetes de notificación de Winlogon
registrados en HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Notify que se ha producido un inicio de sesión.
Winlogon siguiente inicia el shell al lanzar el ejecutable o ejecutables especificado en HKLM \ SOFTWARE \ Microsoft \
Windows NT \ CurrentVersion \ Winlogon \ Userinit (con múltiples ejecutables separados por comas) que por los puntos
1. Procesa los scripts de usuario especificados en HKCU \ Software \ Policies \ Microsoft \ Windows \ System \
Secuencias de comandos y los scripts de inicio de sesión en la máquina HKLM \ Software \ Policies \ Microsoft \ Windows \ System \ Scripts.
(Debido a que las secuencias de comandos de máquina en funcionamiento después de scripts de usuario, que pueden anular los ajustes del usuario.)
2. Si la directiva de grupo especifica una cuota de perfil de usuario, se inicia% SystemRoot% \ System32 \ ProQuota.exe para hacer cumplir la
3. Lanza la cáscara separada por comas o conchas se especifica en HKCU \ Software \ Microsoft \ Windows
NT \ CurrentVersion \ Winlogon \ Shell. Si no existe ese valor, Userinit.exe lanza el depósito o los depósitos se especifica en
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Shell, que es por defecto Explorer.exe.
Winlogon notifica a los proveedores de red registrados que un usuario ha iniciado la sesión. El proveedor de red de Microsoft, encaminador de
proveedores múltiples (% SystemRoot% \ System32 \ Mpr.dll), restaura persistentes asignaciones de letras de unidad y la impresora del usuario
almacenados en HKCU \ Red y HKCU \ Printers, respectivamente. La Figura 13-4 muestra el árbol de proceso como se ve en el monitor de procesos después
de un inicio de sesión (utilizando su capacidad de registro de arranque). Tenga en cuenta los procesos de SMS que están atenuados (es decir que tienen
desde abandonan). Estos se refieren a las copias engendradas que inicializan cada sesión.
ReadyBoot
Windows utiliza la captura previa de tiempo de arranque lógico estándar (descrito en el capítulo 10) si el sistema tiene menos de 700 MB de memoria, pero si
el sistema tiene 700 MB o más de memoria RAM, utiliza una caché en memoria RAM para optimizar el proceso de arranque . El tamaño de la memoria caché
depende de la RAM total disponible, pero es lo suficientemente grande como para crear una memoria caché razonable y sin embargo permitir que el sistema
After every boot, the ReadyBoost service (see Chapter 10 for information on ReadyBoost) uses idle CPU time to calculate a
boot-time caching plan for the next boot. It analyzes file trace information from the five previous boots and identifies which
files were accessed and where they are located on disk. It stores the processed traces in %SystemRoot%\Prefetch\Readyboot
as .fx files and saves the caching plan under HKLM\SYSTEM\CurrentControlSet\Services\Rdyboost\Parameters in
REG_BINARY values named for internal disk volumes they refer to.
(Ecache.sys), pero la población de la caché es guiado por el plan de inicio almacenado previamente en el registro. Aunque la memoria caché de
arranque se comprime como el caché ReadyBoost, otra diferencia entre ReadyBoost y ReadyBoot gestión de la caché es que mientras que en el
modo ReadyBoot, la caché no está encriptada. El servicio ReadyBoost borra la memoria caché de 50 segundos después de que el servicio se
inicia, o si otras demandas de memoria justifiquen, y registra las estadísticas de la caché en HKLM \ SYSTEM \ CurrentControlSet \ Services \
comprueban los componentes del sistema por defecto y el proceso de puesta en marcha proceso automático durante los procesos de arranque y
de inicio de sesión. La utilidad Msconfig (% SystemRoot% \ System32 \ Msconfig.exe) muestra las imágenes configuradas por varios de los
lugares. La herramienta Autoruns, que se puede descargar de Sysinternals y que se muestra en la Figura 13-6, examina más lugares que Msconfig
y muestra más información acerca de las imágenes configuradas para ejecutarse automáticamente. Por defecto, Autoruns sólo muestra las
ubicaciones que están configurados para ejecutar automáticamente al menos una imagen, pero la selección de la entrada por ubicación vacía en
el menú de opciones incluyen causas Autoruns para mostrar todos los lugares que controle. El menú Opciones también tiene selecciones para
dirigir Autoruns para ocultar las entradas de Microsoft, pero siempre se debe combinar esta opción con Verificar firmas imagen; de lo contrario,
se arriesga a ocultar programas maliciosos que incluyen información falsa sobre su nombre de la empresa información.
Experimento: Autoruns
En esta sección se presenta enfoques para resolver problemas que pueden ocurrir durante el proceso de inicio de Windows, como resultado de la
corrupción de disco duro, corrupción de archivos, archivos que faltan, y los errores de controladores de terceros. En primer lugar se describen tres modos
de recuperación de arranque de problemas de Windows: última buena conocida, de modo seguro, y Windows entorno de recuperación (WinRE). A
continuación, se presentan problemas comunes de arranque, sus causas, y enfoques para resolverlos. Las soluciones se refieren a durar un buen modo
estado de inicio. Debido a que los valores de configuración del sistema se almacenan en HKLM \ SYSTEM \ CurrentControlSet \ Control y la
configuración del controlador y el servicio se almacena en HKLM \ SYSTEM \ CurrentControlSet \ Services, los cambios en estas partes del registro
pueden hacer que un sistema que no arranca. Por ejemplo, si se instala un controlador de dispositivo que tiene un error que bloquea el sistema
durante el arranque, puede pulsar la tecla F8 durante el arranque y seleccione la última buena conocida en el menú resultante. El sistema marca el
conjunto de control que utilizaba para arrancar el sistema como fallido estableciendo el valor Error de HKLM \ SYSTEM \ Select y luego cambia
HKLM \ SYSTEM \ Select \ actual al valor almacenado en HKLM \ SYSTEM \ Select \ LastKnownGood. También actualiza el enlace simbólico HKLM \
SYSTEM \ CurrentControlSet a punto en el conjunto de control buena conocida. Debido a que las llaves de su nuevo controlador no está presente
en la subclave Servicios del conjunto de control buena conocida, el sistema se iniciará con éxito.
Modo seguro
Tal vez la razón más común los sistemas Windows que no arranca es que se convierten en un controlador de dispositivo se bloquea la máquina durante la
secuencia de arranque. Debido a que las configuraciones de software o hardware pueden cambiar con el tiempo, los errores latentes pueden surgir en los
conductores en cualquier momento. Windows ofrece una manera para que un administrador para atacar el problema: en el arranque modo seguro. El modo
seguro es una configuración de arranque que consiste en el conjunto mínimo de controladores de dispositivos y servicios. Al confiar en sólo los
controladores y servicios que son necesarios para el arranque, Windows evita la carga de terceros y otros conductores no esenciales que podrían
bloquearse.
Cuando Windows se inicia, se pulsa la tecla F8 para entrar en un menú especial de arranque que contiene las opciones de arranque modo
seguro. Por lo general, elegir entre tres variaciones-safe mode: modo seguro, modo seguro con funciones de red, y el modo seguro con símbolo del
sistema. modo seguro estándar incluye el número mínimo de controladores y servicios necesarios para arrancar con éxito del dispositivo. Redes
habilitado el modo seguro agrega controladores de red y servicios a los conductores y los servicios que incluye el modo seguro estándar. Por
último, el modo seguro con símbolo del sistema es idéntico al modo seguro de Windows estándar, excepto que se ejecuta la aplicación símbolo del
sistema (cmd.exe) en vez de Explorador de Windows como el shell cuando el sistema activa el modo de interfaz gráfica de usuario.
Windows incluye un cuarto modo-Servicios de directorio Modo seguro que es diferente de los modos de seguridad de redes habilitadas
estándar y restaurar. Utiliza los servicios de directorio modo de restauración para arrancar el sistema en un modo en el servicio Active Directory de
un controlador de dominio está desconectado y sin abrir. Esto le permite realizar operaciones de reparación en la base de datos o restaurar desde
los medios de copia de seguridad. Todos los controladores y servicios, con la excepción del servicio de Active Directory, la carga durante una
restauración de servicios de directorio de arranque modo. En los casos en que no se puede iniciar sesión en un sistema debido a la corrupción de
base de datos de Active Directory, este modo le permite reparar los daños.
How does Windows know which device drivers and services are part of standard and networkingenabled safe mode? The
answer lies in the HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot registry key. This key contains the Minimal and
Network subkeys. Each subkey contains more subkeys
controlador de dispositivo de visualización VGA que la configuración de inicio incluye. El controlador de pantalla VGA ofrece servicios gráficos básicos para
cualquier adaptador de pantalla compatible con PC. El sistema utiliza este controlador como el controlador de pantalla en modo seguro en lugar de un
controlador que podrían aprovechar las características avanzadas de hardware de un adaptador, sino que también puede evitar que el sistema se inicie. Cada
subclave bajo la clave SafeBoot tiene un valor por defecto que describe lo que identifica a la subclave; El valor predeterminado de la subclave vga.sys es
“controlador”.
La subclave del sistema de archivos de arranque tiene como valor predeterminado “grupo de controladores”. Cuando los desarrolladores a diseñar
script de instalación de un controlador de dispositivo (.inf), pueden especificar que el controlador de dispositivo pertenece a un grupo de controladores.
Los grupos de conductores que un sistema define están enumerados en la lista de valores de la clave HKLM \ SYSTEM \ CurrentControlSet \ Control \
ServiceGroupOrder. Un desarrollador especifica un conductor como miembro de un grupo para indicar a Windows en qué momento durante el proceso
de arranque del conductor debe comenzar. El propósito principal del clave ServiceGroupOrder es definir el orden en el que se cargan grupos de
controladores; algunos tipos de controladores deben cargar antes o después de otros tipos de controladores. El valor por debajo de los asociados
llaves del conductor y configuración del servicio residen por debajo de HKLM \ SYSTEM \ CurrentControlSet \ Services. Si nos fijamos en esta clave,
encontrará la clave VgaSave para el controlador de dispositivo de visualización VGA, que se puede ver en el registro es un miembro del grupo de video
en Guardar. Cualquier controlador de sistema de archivos de Windows que requiere para el acceso a la unidad de sistema de Windows se cargan
automáticamente como parte del grupo de sistema de archivos de arranque. Otros controladores del sistema de archivos son parte del grupo de sistema
de archivos, que las configuraciones en modo seguro y estándar de redes habilitadas incluyen también.
Cuando se arranca en una configuración en modo seguro, el cargador de arranque (Winload) pasa un interruptor asociado al núcleo
(Ntoskrnl.exe) como un parámetro de línea de comandos, junto con cualquier interruptor que ha especificado en el BCD para la instalación 're
arranque. Si arranca en cualquier modo seguro, Winload establece el arranque seguro BCD opción con un valor que describe el tipo de modo
seguro que seleccione. Para el modo de seguridad estándar, conjuntos WINLOAD mínimo, y de modo seguro en red habilitado, se añade red. Winload
añade
mínimo y conjuntos safebootalternateshell de modo seguro con símbolo del sistema y dsrepair para dicho modo.
Los parámetros de Windows exploraciones del kernel de arranque en busca del modo seguro interruptores temprana durante el arranque,
durante el InitSafeBoot funcionar, y establece la variable interna InitSafeBootMode a un valor que refleja los interruptores el núcleo encuentra.
El kernel escribe el InitSafeBootMode valor al valor del registro HKLM \ SYSTEM \ CurrentControlSet \ Control \ SafeBoot \ opción \
ValorDeLaOpción de manera que los componentes de modo de usuario, como el SMC, puede determinar qué modo de arranque el sistema
está en. Además, si el sistema se inicia en la caja fuerte el modo con el símbolo del sistema, el núcleo establece el HKLM \ SYSTEM \
CurrentControlSet \ control \ SafeBoot \ opción \ UseAlternateShell valor a 1. el kernel registra los parámetros que Winload pasa a ella en el
Cuando los controladores de dispositivo de cargas subsistema de E / S gestor del kernel que HKLM \ SYSTEM \ CurrentControlSet \
Services especifica, el gerente de E / S ejecuta la función IopLoadDriver. Cuando el administrador de Plug and Play detecta un nuevo
dispositivo y quiere cargar dinámicamente el controlador de dispositivo para el dispositivo detectado, el enchufe y el gerente Juego
ejecuta la función PipCallDriverAddDevice. Ambas funciones llaman a la función IopSafebootDriverLoad antes de cargar el controlador en
cuestión.
mínima. Si IopSafebootDriverLoad encuentra el grupo del conductor en la lista, IopSafebootDriverLoad indica a su llamador que el
IopSafebootDriverLoad busca el nombre del conductor bajo la subclave mínima. Si el nombre del conductor aparece como una subclave, el conductor
puede cargar. Si IopSafebootDriverLoad No puedo encontrar las subclaves del grupo conductor o el nombre del controlador, no se cargará el
IopSafebootDriverLoad realiza las búsquedas en la subclave red. Si el sistema no arranca en modo seguro, IopSafebootDriverLoad deja
toda la carga conductores.
Cuando el administrador de control de servicios (SCM) componente de modo de usuario (que implementa Services.exe) inicializa durante el
proceso de arranque, el SCM comprueba el valor de HKLM \ SYSTEM \ CurrentControlSet \ Control \ SafeBoot \ opción \ ValorDeLaOpción
para determinar si el sistema está realizar un arranque en modo seguro. Si es así, el SMC refleja las acciones de IopSafebootDriverLoad. Aunque
el SMC procesa los servicios enumerados en HKLM \ SYSTEM \ CurrentControlSet \ Services, se carga únicamente servicios de la subclave
modo seguro apropiado especifica por su nombre. Puede encontrar más información sobre el proceso de inicialización SMC en la sección
Userinit, el componente que inicializa el entorno de un usuario cuando el usuario inicia sesión (% SystemRoot% \ System32 \ Userinit.exe),
es otro componente de modo de usuario que necesita saber si el sistema se inicia en modo seguro. Se comprueba el valor de HKLM \ SYSTEM
\ CurrentControlSet \ Control \ SafeBoot \ opción \ UseAlternateShell. Si se establece este valor, Userinit ejecuta el programa especificado como
el shell del usuario en el valor HKLM \ SYSTEM \ CurrentControlSet \ Control \ SafeBoot \ AlternateShell en lugar de ejecutar Explorer.exe.
Windows escribe el nombre del programa cmd.exe al valor AlternateShell durante la instalación, por lo que el comando de Windows que
aparezca la shell por defecto para el modo seguro con símbolo del sistema. A pesar de que el símbolo del sistema es la cáscara, puede escribir explorer.exe
en el símbolo del sistema para iniciar el Explorador de Windows, y se puede ejecutar ningún otro programa de interfaz gráfica de usuario
¿Cómo determina una aplicación si el sistema se inicia en modo seguro? Llamando a la de Windows GetSystemMetrics
(SM_CLEANBOOT) función. secuencias de comandos por lotes que necesitan para realizar ciertas operaciones cuando el sistema
arranca en modo seguro buscan la variable de entorno SAFEBOOT_OPTION debido a que el sistema define esta variable de entorno
Cuando dirige el sistema para arrancar en modo seguro, Winload entrega la cadena especificada por el
bootlog opción para el núcleo de Windows como un parámetro, junto con el parámetro que solicita el modo seguro. Cuando el núcleo se inicia,
comprueba la presencia de la bootlog Parámetro si o no cualquier parámetro-modo seguro está presente. Si el kernel detecta una cadena registro de
arranque, el kernel registra la acción del núcleo toma en cada controlador de dispositivo se considera para la carga. Por ejemplo, si IopSafebootDriverLoad
indica al gestor de E / S no cargar un controlador, las llamadas de E / S de dirigentes IopBootLog dejar constancia de que el conductor no estaba
cargada. Del mismo modo, después de IopLoadDriver carga con éxito un controlador que es parte de la configuración en modo seguro, IopLoadDriver llamadas
IopBootLog dejar constancia de que el conductor cargado. Puede examinar los registros de arranque para ver qué controladores de dispositivos son
Dado que el núcleo quiere evitar modificar el disco hasta que se ejecuta Chkdsk, al final del proceso de arranque, IopBootLog no puede
simplemente volcar los mensajes en un archivo de registro. En lugar, IopBootLog registra los mensajes en el HKLM \ SYSTEM \ CurrentControlSet \ valor
del registro BootLog. A medida que el primer componente en modo de usuario para cargar durante un inicio, el Gestor de sesiones (% SystemRoot% \
System32 \ Smss.exe) realiza Chkdsk para garantizar la coherencia las unidades del sistema y después se completa la inicialización del registro
ejecutando el
NtInitializeRegistry llamada al sistema. El núcleo toma esta acción como una señal de que se puede abrir con seguridad un archivo de registro en el
disco, lo que lo hace, la invocación de la función IopCopyBootLogRegistryToFile. Esta función crea el archivo Ntbtlog.txt en el directorio de sistema de
Windows (% SystemRoot%) y se copia el contenido del valor del registro BootLog al archivo. IopCopyBootLogRegistryToFile También establece un
indicador para IopBootLog que le permite IopBootLog sabe que escribir directamente en el archivo de registro, en lugar de grabar mensajes en el
registro, es ahora bien. La siguiente salida muestra el contenido parciales de un registro de inicio de la muestra:
Microsoft (R) Windows (R) Versión 6.1 (Build 7601) 10 4 2012 09: 04: 53.375
kdcom.dll
CI.DLL
\SystemRoot\system32\drivers\fltmgr.sys
Did not load driver @battery.inf,%acpi\acpi0003.devicedesc%;Microsoft AC Adapter Did not load driver
@battery.inf,%acpi\pnp0c0a.devicedesc%;Microsoft ACPI-Compliant Control Method Battery Did not load driver
@oem46.inf,%nvidia_g71.dev_0297.1%;NVIDIA GeForce Go 7950 GTX Did not load driver @oem5.inf,%nic_mpciex%;Intel(R) PRO/Wireless 3945ABG
Network Connection Did not load driver @netb57vx.inf,%bcm5750a1clnahkd%;Broadcom NetXtreme 57xx Gigabit Controller Did not load driver
@sdbus.inf,%pci\cc_080501.devicedesc%;SDA Standard Compliant SD Host Controller
...
secuencia de arranque, pero en algunas situaciones un arranque en modo seguro no ayudará al arranque del sistema. Por ejemplo, si un conductor que
impide que el sistema de arranque es un miembro de un grupo de seguridad, botas de modo seguro se producirá un error. Otro ejemplo de una situación en
la que el modo seguro no ayudará al arranque del sistema es cuando un controlador de terceros, como por ejemplo un controlador de escáner de virus, que
se carga en el maletero evita que el sistema se inicie. (Cargador-empiezan los conductores de carga si el sistema se encuentra en modo seguro.) Otras
situaciones en las botas de modo seguro fallará son cuando un módulo del sistema o un archivo de controlador de dispositivo fundamental que forma parte
de una configuración de modo seguro se daña o cuando registro maestro de arranque de la unidad del sistema (MBR) está dañado.
Usted puede conseguir alrededor de estos problemas utilizando el Entorno de recuperación de Windows. El entorno de recuperación de Windows
proporciona una variedad de herramientas y tecnologías de reparación automatizadas para corregir automáticamente los problemas de inicio más
■ Reparación inicial Una herramienta automatizada que detecta los problemas de inicio de Windows más comunes y
■ Restauración del sistema Permite restaurar a un punto de restauración anterior en los casos en los que no se puede arrancar la instalación
■ Recuperar la imagen del sistema Llamado Complete PC Restore, así como ASR (Sistema de Recuperación Automatizada), en las versiones
anteriores de Windows, esto restaura una instalación de Windows desde una copia de seguridad completa, no sólo un punto de
■ Herramienta de diagnóstico de memoria de Windows Realiza las pruebas de diagnóstico de memoria que si hay signos de RAM defectuoso.
RAM defectuosa puede ser la razón para el núcleo y la aplicación se bloquea al azar y el comportamiento errático del sistema.
■ Símbolo del sistema Para los casos en que la solución de problemas o reparación requiere intervención manual (como la copia de archivos
desde otra unidad o manipular el BCD), se puede utilizar el símbolo del sistema para tener una concha llena de Windows que puede lanzar
casi cualquier programa de Windows (siempre y cuando las dependencias requeridas puede satisfacerse) -a diferencia de la consola de
recuperación en las versiones anteriores de Windows, que sólo se admite un conjunto limitado de comandos especializados.
reparación de una instalación existente. Si decide reparar una instalación, el sistema muestra un cuadro de diálogo denominado Opciones de
Las versiones más recientes de Windows también instalan WinRE a una partición de recuperación en una instalación limpia del sistema.
En estos sistemas, puede acceder a WinRE mediante la opción F8 para acceder a las opciones avanzadas de inicio durante la ejecución
Bootmgr. Si ve una opción Reparar el equipo, la máquina dispone de una copia de disco duro local. Si por alguna razón el suyo no, puede
seguir las instrucciones en el blog de Microsoft WinRE ( http://blogs.msdn.com/winre ) Para instalar WinRE en el disco duro a sí mismo de los
Si selecciona la primera opción, WinRE continuación se mostrará el cuadro de diálogo de la Figura 13-8, la cual tiene las diversas opciones de
recuperación. La elección de la segunda opción, por el contrario, es equivalente a la opción de recuperación de la imagen del sistema se muestra en la
Figura 13-8.
que instruye Bootmgr para iniciar automáticamente WinRE en el próximo ciclo de reinicio. En lugar del cuadro de diálogo se muestra en la Figura
13-8, el entorno de recuperación se iniciará automáticamente la herramienta de reparación de inicio, que se muestra en la Figura 13-9.
At the end of the scan and repair cycle, the tool will automatically attempt to fix any damage found, including replacing
system files from the installation media. You can click the details link to see information about the damage that was fixed.
For example, in Figure 13-10, the Startup Repair tool fixed a damaged boot sector.
If the Startup Repair tool cannot automatically fix the damage, or if you cancel the operation, you’ll get a chance to try other
methods and the System Recovery Options dialog box will be displayed.
■ Boot (the definition of a successful boot is the same as the one used for determining Last Known Good status,
which was described earlier)
■ Shutdown
El archivo de estado de arranque también indica si un problema se detectó la última vez que el usuario ha intentado arrancar el sistema
operativo y las opciones de recuperación se muestra, lo que indica que el usuario ha tenido conocimiento del problema y las medidas
adoptadas. Runtime Library API (RTL) en Ntdll.dll contiene las interfaces privadas que Windows utiliza para leer y escribir en el archivo. Al
se acerca a la solución de ellos. Para ayudar a localizar un problema que se puede encontrar, que están organizados de acuerdo con el lugar en el
maletero en el que se producen. Tenga en cuenta que para la mayoría de estos problemas, debe ser capaz de arrancar en la recuperación del entorno
Windows y permitir que la herramienta de reparación de inicio para analizar su sistema y llevar a cabo cualquier tarea de reparación automatizadas.
MBR corrupción
■ Los síntomas Un sistema que tiene registro de inicio maestro corrupción (MBR) ejecutará el encendido del BIOS prueba (POST),
pantalla de información de la versión del BIOS o la marca OEM, cambie a una pantalla en negro, y luego colgar. Dependiendo del
tipo de corrupción MBR ha experimentado, es posible que aparezca uno de los siguientes mensajes: “tabla de partición no válida”,
■ Porque El MBR puede corromperse debido a errores de disco duro, el disco está dañado como resultado de un error del conductor
■ Resolución Arrancar en el entorno de recuperación de Windows, seleccione la opción Símbolo del sistema, y
luego ejecutar el bootrec / fixmbr mando. Este comando reemplaza el código ejecutable en el MBR.
■ Los síntomas la corrupción del sector de arranque puede parecerse a la corrupción MBR, donde el sistema se bloquea después de la POST del
BIOS en una pantalla en negro, o es posible que vea los mensajes “Se ha producido un error de lectura de disco”, “autoarranque no se
■ Porque El sector de arranque puede corromperse debido a errores de disco duro, el disco está dañado como resultado de un error del
■ Resolución Arrancar en el entorno de recuperación de Windows, seleccione la opción Símbolo del sistema, y luego
ejecutar el bootrec / fixboot mando. Este comando vuelve a escribir el sector de arranque del volumen que especifique.
Usted debe ejecutar el comando tanto en el volumen de arranque del sistema y si son diferentes.
■ Síntoma After BIOS POST, you’ll see a message that begins “Windows could not start because of a computer
disk hardware configuration problem”, “Could not read from selected boot disk”, or “Check boot path and disk
hardware”.
■ Cause The BCD has been deleted, become corrupt, or no longer references the boot volume because the
addition of a partition has changed the name of the volume.
■ Resolution Boot into the Windows Recovery Environment, choose the Command Prompt option, and then execute the bootrec
/scanos and bootrec /rebuildbcd comandos. Estos comandos escanear cada volumen en busca de instalaciones de
Windows. Cuando descubren una instalación, se le preguntará si deben añadirlo a la BCD como una opción de arranque
y qué nombre se debe mostrar para la instalación en el menú de arranque. Para otros tipos de daños BCDrelated,
también se puede utilizar Bcdedit.exe para realizar tareas tales como la construcción de un nuevo BCD desde cero o
clonar una buena copia existente.
■ Los síntomas Hay varias formas de la corrupción de archivos del sistema -que incluyen los ejecutables, controladores o DLL-puede
manifestarse. Una forma de hacerlo es con un mensaje en una pantalla en negro después de la POST del BIOS que dice: “Windows no puede
iniciarse porque el siguiente archivo falta o está dañado”, seguido del nombre de un archivo y una solicitud para volver a instalar el archivo. Otra
forma de hacerlo es con un accidente de pantalla azul durante el arranque con el texto, “STOP: 0xc0000135 {No se puede encontrar el
componente}”.
■ causas El volumen en el que se encuentra un archivo de sistema está dañado o uno o más archivos de sistema se han
eliminado o dañado.
■ Resolución Arrancar en el entorno de recuperación de Windows, seleccione la opción Símbolo del sistema, y luego ejecutar el chkdsk mando.
Chkdsk intentará reparar daños en el volumen. Si Chkdsk no reporta ningún problema, obtener una copia de seguridad del archivo de
sistema en cuestión. Un lugar para comprobar es en la carpeta% SystemRoot% \ winsxs \ directorio de copia de seguridad, en el que
Windows coloca copias de todos los archivos de sistema para el acceso de Protección de recursos de Windows. (Véase el recuadro
“Protección de recursos de Windows”.) Si no puede encontrar una copia del archivo de allí, ver si
En algunos casos, varios archivos del sistema se borran o se corrompen, por lo que el proceso de reparación puede implicar múltiples reinicios y
errores de inicio como usted repara los archivos de uno en uno. Si usted cree que la corrupción de archivos del sistema sea extensa, se debe
considerar la restauración del sistema desde una imagen de copia de seguridad, como uno generado por Windows Backup and Restore o desde un
punto de restauración.
Al ejecutar copia de seguridad y restauración (que se encuentra en la carpeta de mantenimiento en el menú Inicio), se puede generar una imagen de
recuperación del sistema de imágenes, que incluye todos los archivos en los volúmenes de sistema y de inicio, además de un disquete en el que se
almacena información sobre el discos y volúmenes del sistema. Para restaurar un sistema a partir de una imagen así, inicie desde los medios de instalación
de Windows y seleccione la opción adecuada cuando se le solicite (o utilizar el entorno de recuperación mostrado anteriormente).
Si usted no tiene una copia de seguridad desde el que restaurar, es un último recurso para ejecutar una reparación de Windows: Arranque desde el
medio de instalación de Windows, y siga el asistente como si se va a realizar una nueva instalación. El asistente le preguntará si desea realizar una
reparación o instalación nueva. Cuando usted le dice que desea reparar, el programa de instalación vuelve a instalar todos los archivos del sistema,
Para preservar la integridad de los muchos componentes que intervienen en el proceso de arranque, así como otros archivos de Windows,
Protección de recursos de Windows ( WRP). WRP is implemented through access control lists (ACLs) that protect critical
system files on the machine. It is also exposed through an API (located in %SystemRoot%\System32\Sfc.dll and
%SystemRoot%\System32\Sfc_os.dll) that can be accessed by the Sfc.exe utility to manually check a file for
corruption and restore it.
WRP también protegerá carpetas críticos enteros, si es necesario, incluso de bloqueo hacia abajo la carpeta para que sea inaccesible
por los administradores (sin modificar la lista de control de acceso en la carpeta). La única forma compatible para modificar archivos
protegidos WRP es a través del servicio Windows instalador de módulos, que puede ejecutarse en la cuenta TrustedInstaller. Este servicio
se utiliza para la instalación de parches, paquetes de servicios, revisiones, y Windows Update. Esta cuenta tiene acceso a los distintos
archivos protegidos y es de confianza por el sistema (como su nombre lo indica) para modificar los archivos críticos y reemplazarlos. WRP
también protege las claves críticas de registro, y puede incluso bloquear árboles enteros del registro si se consideran todos los valores y
WRP establece la ACL en archivos, directorios, claves protegidas o registro de tal manera que sólo la cuenta TrustedInstaller es capaz de
modificar o eliminar estos archivos. Los desarrolladores de aplicaciones pueden utilizar el SfcIsFileProtected o SfcIsKeyProtected API para
Para compatibilidad hacia atrás, ciertos instaladores se consideran bien conocido -Una aplicación
calzo compatibilidad existe que suprimirá la “acceso denegado” error que ciertos instaladores recibirían al intentar
modificar los recursos protegidos WRP. En su lugar, el instalador recibe un código falso “éxito”, pero la modificación no
se hace. Esta virtualización es similar al Usuario
■ Los síntomas Si la sección del Registro del sistema (que se analiza junto con archivos de sección de la sección “El Registro” en el
Capítulo 4 de la parte 1) falta o está dañada, Winload mostrará el mensaje “Windows no puede iniciarse porque el siguiente archivo
conecte
falta entran
o está en esta
dañado : \ categoría
Windowsy\puede aparecer
System32 como\ un
\ Config accidente
System”, ende pantalla
una azul
pantalla eno negro
un bloqueo, compatible
después con el requestedExecutionLevel
de la prueba POST del BIOS.
■ causas La sección del Registro del sistema, que contiene información de configuración necesaria para que el sistema
arranque, se ha dañado o se ha eliminado.
■ Resolución Arrancar en el entorno de recuperación de Windows, seleccione la opción Símbolo del sistema, y luego ejecutar el chkdsk mando.
Si el problema no se corrige, obtener una copia de seguridad de la sección del Registro del sistema. Windows hace copias del registro
de las colmenas cada 12 horas (manteniendo la copia inmediatamente anterior con una extensión .OLD) en una carpeta llamada%
SystemRoot% \ System32 \ Config \ regback, por lo que copiar el archivo con el nombre de sistema de% SystemRoot% \ System32 \
Config .
Si Restaurar sistema está activada (Restaurar sistema se discute en el Capítulo 12, “Sistema de archivos”), a menudo se puede obtener una copia
de seguridad más reciente de las secciones del registro, incluyendo el subárbol del sistema, desde el más reciente punto de restauración. Se puede
elegir Restaurar sistema desde el entorno de recuperación de Windows para restaurar el registro desde el último punto de restauración.
responde.
■ causas Estos problemas son casi siempre el resultado de un error en un controlador de dispositivo, pero a veces pueden ser el resultado de
la corrupción de una sección del Registro que no sea el subárbol del sistema.
■ Resolución Puede tomar varias medidas para intentar corregir el problema. Lo primero que se debe tratar es la última configuración
buena conocida. Última buena conocida (LKG), que se describe anteriormente en este capítulo y en la sección “Servicios” del capítulo
4 de la parte 1, consiste en el conjunto de control de registro que se utilizó por última para arrancar el sistema con éxito. Debido a que
un conjunto de control incluye la configuración del sistema de núcleo y la base de datos de registro del controlador de dispositivos y
servicios, usando una versión que no refleja cambios o controladores o servicios recién instalados podría evitar la fuente del
problema. Se accede a la última buena conocida pulsando la tecla F8 al inicio del proceso de arranque para acceder al mismo menú
Como se ha dicho anteriormente en este capítulo, cuando se arranca en LKG, el sistema guarda el conjunto de control que está evitando y lo etiqueta
como el ha fallado establece control. Puede aprovechar el control fallido establecido en los casos en LKG hace un arranque del sistema para determinar lo
que estaba causando que el sistema no podrá arrancar mediante la exportación de los contenidos del conjunto de controles actual de la bota éxito y el
. archivos reg. Esto se hace mediante el uso de la funcionalidad de exportación de Regedit, el cual se accede en el menú Archivo:
3. Abrir HKLM \ SYSTEM \ Select, leer el valor de Error y seleccione la subclave denominada HKLM \
5. Uso de WordPad (que se encuentra bajo Accesorios en el menú Inicio) a nivel mundial reemplazar todo
6. Utilice WordPad para cambiar todas las instancias de control XXX ( reemplazando XXX con el valor de la
Las diferencias entre un conjunto de control fallido y una muy buena pueden ser numerosas, por lo que debe centrar su examen en cambios
bajo la subclave de control, así como bajo los parámetros de subclaves de controladores y servicios registrados en la subclave Servicios. Ignorar
los cambios realizados en las subclaves de enumeración de claves de registro de conductor en la rama Servicios del conjunto de control.
Si el problema que estás experimentando es causado por un conductor o servicio que estaba presente en el sistema, ya que antes del
último inicio correcto, LKG no hará que el sistema pueda arrancar. Del mismo modo, si un ajuste de configuración problemática cambió fuera
del conjunto de control o se hizo antes del último inicio correcto, LKG no ayudará. En esos casos, la siguiente opción de probar es el modo
seguro (descrito anteriormente en esta sección). Si el sistema se inicia con éxito en modo seguro y que conoce lo particular, conductor estaba
causando el inicio normal falle, puede desactivar el controlador mediante el Administrador de dispositivos (accesible desde
recientemente el conductor, y cree que la actualización introdujo un error, se puede optar por hacer retroceder el conductor a su versión anterior en su
lugar, también con el Administrador de dispositivos. Para restaurar un controlador para su versión anterior, haga doble clic en el dispositivo para abrir
En los sistemas con Restaurar sistema está habilitado, una opción cuando LKG no es para hacer retroceder todo el estado del sistema (según la
definición de la función Restaurar sistema) a un punto anterior en el tiempo. El modo seguro detecta la existencia de puntos de restauración, y cuando
están presentes le preguntará si desea iniciar una sesión en la instalación para llevar a cabo un diagnóstico manual y reparar o iniciar el Asistente para
Restaurar sistema. El uso de la función Restaurar sistema para que un sistema pueda arrancar de nuevo es atractivo cuando se conoce la causa de un
problema y desea que la reparación sea automático o cuando no se sabe la causa, pero no quieren invertir tiempo para determinar la causa.
Si Restaurar sistema no es una opción o si desea determinar la causa de un accidente durante el arranque normal y el sistema ejecuta
correctamente en modo seguro, intento de obtener un registro de inicio de la bota sin éxito al presionar F8 para acceder al menú de arranque especial y
elegir la opción de registro de arranque. Como se ha descrito anteriormente en este capítulo, el Gestor de sesiones (% SystemRoot% \ System32 \
Smss.exe) guarda un registro de la bota que incluye un registro de controladores de dispositivos que el sistema de carga y se optó por no cargar a%
SystemRoot% \ Ntbtlog.txt , por lo que obtener un registro de arranque si el accidente se produce después de colgar o Session Manager inicializa. Al
reiniciar en modo seguro, el sistema añade nuevas entradas en el registro de arranque existente. Extraer las partes del archivo de registro que se
refieren a las botas de tentativa y de modo seguro fallidos en archivos separados. Eliminan las líneas que contienen el texto “no se cargó controlador”,
y luego compararlos con una herramienta de comparación de texto como Windiff. Uno por uno, deshabilitar los controladores que cargan durante el
arranque normal pero no en el modo de arranque seguro hasta que el sistema se inicia de nuevo con éxito. (A continuación, volver a activar los
Si no puede obtener un registro de inicio del arranque normal (por ejemplo, debido a que el sistema se bloquea antes Session Manager inicializa), si
el sistema también se bloquea durante el arranque en modo seguro, o si una comparación de registros de arranque de la normal y seguro botas -mode no
revelaron diferencias significativas (por ejemplo, cuando el conductor que está causando fallos en el arranque normal se inicia después de Session
Manager inicializa), la siguiente herramienta para probar es el comprobador de controladores combinado con el análisis de volcado. (Véase el Capítulo
14, “Análisis de volcado” para obtener más información sobre estos dos temas.)
Apagar
llama y envía un mensaje RPC a Winlogon, diciéndole que realizar un apagado del sistema. Winlogon continuación, se hace pasar por el momento,
ha iniciado la sesión de usuario (que podría o no tener el mismo contexto de seguridad como el usuario que inició el apagado del sistema) y las
Esta vez, Csrss ve que la solicitud es de Winlogon y recorre todos los procesos en la sesión de inicio de sesión del usuario
interactiva (de nuevo, no el usuario que solicitó un apagado) en orden inverso a su el nivel de apagado. Un proceso puede especificar un
nivel de apagado, lo que indica que el sistema cuando se quiere salir con respecto a otros procesos, llamando SetProcessShutdownParameters.
los niveles de cierre válidos están en el rango de 0 a 1023, y el nivel por defecto es 640. Explorer, por ejemplo, establece su nivel de
cierre a 2 y el Administrador de tareas especifica 1. Para cada proceso que posee una ventana de nivel superior, Csrss envía el
WM_QUERYENDSESSION mensaje a cada hilo en el proceso que tiene un bucle de mensajes de Windows. Si el hilo devuelve TRUE, el
cierre del sistema pueda proceder. Csrss continuación, envía el mensaje WM_ENDSESSION Windows para el hilo que solicitarlo para
salir. Csrss espera el número de segundos definidos en HKCU \ Control Panel \ Desktop \ HungAppTimeout para el hilo para salir. (El
Si el hilo no sale antes del tiempo de espera, Csrss desvanece la pantalla y muestra la pantalla hungprogram muestra en la figura
13-11. (Puede desactivar esta pantalla, creando el valor del registro HKCU \ Control Panel \ Desktop \ AutoEndTasks y se establece en 1.)
Esta pantalla indica qué programas se están ejecutando actualmente y, si está disponible, su estado actual. Windows indica qué
programa no se está cerrando de manera oportuna y le da al usuario la posibilidad de elegir matar el proceso o abortar el apagado. (No
hay tiempo de espera en esta pantalla, lo que significa que una solicitud de cierre podría esperar para siempre en este punto.) Además,
las aplicaciones de terceros pueden agregar su propia información específica sobre el estado, por ejemplo, un producto de virtualización
de cerrar la sesión. Después de la cantidad de tiempo especificado por el valor del registro HungAppTimeout ha expirado,
CSRSS.exe presenta un mensaje que le pregunta si desea o no que al finalizar el proceso de Bloc de notas, que no ha salido
porque está esperando a que diga que si o no a guardar el texto introducido en un archivo. Si hace clic en el botón Cancelar,
Como un segundo experimento, si intenta cerrar de nuevo (con la caja de diálogo de consulta de Bloc de notas todavía abierto), el Bloc de
notas mostrará su propio cuadro de mensaje para informarle de que el cierre no puede proceder limpiamente. Sin embargo, este cuadro de
diálogo no es más que un mensaje informativo para ayudar a los usuarios- CSRSS.exe seguirá considerando que el Bloc de notas está
“colgado” y mostrar la interfaz de usuario para terminar los procesos que no responden.
Si el hilo hace la salida antes de que el tiempo de espera, Csrss continúa enviando los mensajes pares
WM_QUERYENDSESSION / WM_ENDSESSION a los otros hilos en el proceso que poseen ventanas. Una vez que todos los hilos que
poseen ventanas en el proceso han salido, Csrss termina el proceso y pasa al siguiente proceso en la sesión interactiva.
Si Csrss encuentra una aplicación de consola, se invoca el controlador de control de consola mediante el envío del evento CTRL_
LOGOFF_EVENT. (Sólo se mostrarán los procesos de servicio reciban el evento CTRL_SHUTDOWN_EVENT al cerrar el sistema.) Si el manejador
devuelve FALSO, Csrss mata el proceso. Si el manejador devuelve TRUE o no responde por el número de segundos definidos por HKCU \ Control
Panel \ Desktop \ WaitToKillAppTimeout (el valor predeterminado es de 20.000 milisegundos), Csrss muestra la pantalla-programa colgado muestra
en la figura 13-11.
A continuación, Winlogon llama ExitWindowsEx tener Csrss terminar los procesos COM que forman parte de la sesión de usuario
interactiva.
En este punto, todos los procesos en la sesión de usuario interactiva han sido terminados. llamadas próximos wininit ExitWindowsEx, que
en esta ocasión se ejecuta en el contexto de proceso del sistema. Esto hace que Wininit para enviar un mensaje a la parte Csrss de la sesión
0, donde viven los servicios. Csrss luego mira a todos los procesos pertenecientes al contexto del sistema y realiza y envía los mensajes
WM_QUERYENDSESSION / WM_ENDSESSION a las roscas de la GUI (como antes). En lugar de enviar CTRL_LOGOFF_EVENT, sin embargo,
se envía a la consola CTRL_ SHUTDOWN_EVENT aplicaciones que se han registrado los manipuladores de control. Tenga en cuenta que el
notificación de cierre. Para más detalles sobre el apagado de servicios (tales como el tiempo de espera de apagado Csrss utiliza para el SMC),
Aunque Csrss realiza los mismos tiempos de espera como cuando fue terminando los procesos de usuario, que no muestra ningún cuadro de diálogo
y no mata a todos los procesos. (Los valores del registro de los tiempos de espera de proceso del sistema se toman a partir del perfil de usuario
predeterminado.) Estos tiempos de espera simplemente permitir que el sistema procesa una oportunidad de limpiar y salida antes de que el sistema se
apaga. Por lo tanto, muchos procesos del sistema son, de hecho, aún en marcha cuando el sistema se apaga, tales como SMS, Wininit, Servicios y LSASS.
Una vez Csrss ha terminado su sistema de pases notifica procesos que el sistema se está cerrando, Winlogon finaliza el
proceso de apagado llamando a la función ejecutiva subsistema NtShutdownSystem.
Esta función llama a la función PoSetSystemPowerState para orquestar el cierre de los conductores y el resto de los subsistemas
ejecutivas (Plug and Play manager, gestor de energía, ejecutivo, gestor de E / S, administrador de configuración, y administrador de
memoria).
Por ejemplo, PoSetSystemPowerState llama al gestor de E / S para enviar paquetes de apagado de E / S a todos los controladores de dispositivos que han
solicitado notificación de cierre. Esta acción da controladores de dispositivos oportunidad para llevar a cabo ningún proceso especial de su dispositivo
podría requerir antes de que Windows sale. Las pilas de subprocesos de trabajo se intercambian en, el gestor de configuración elimina todos los datos de
registro modificados en el disco, y el administrador de memoria escribe todas las páginas que contienen datos de archivos modificados de nuevo a sus
respectivos archivos. Si la opción de borrar el archivo de paginación al apagar el equipo está activado, el administrador de memoria borra el archivo de
paginación en este momento. El gestor de E / S se llama una segunda vez para informar a los controladores del sistema de archivos que el sistema se está
cerrando. apagado del sistema termina en el administrador de energía. La acción del administrador de energía toma depende de si el usuario ha especificado
Conclusión
En este capítulo, hemos examinado los pasos detallados que comporta el inicio y el cierre de Windows (ambos con normalidad y en los
casos de error). Hemos examinado la estructura general de Windows y los mecanismos básicos del sistema que recibe el sistema
funcionando, siga funcionando, y finalmente cerrarlo. El último capítulo de este libro explica cómo tratar con un tipo inusual de