STDIN, el STDOUT y las redirecciones STDERR no funcionan en un proceso secundario de WOW64 si la función CreateProcessWithTokenW crea el proceso secundario

Se aplica a: Windows Server 2008 for Itanium-Based SystemsWindows Server 2008 DatacenterWindows Server 2008 Enterprise

Síntomas


Imagine el siguiente escenario:
  • Tiene un equipo que está ejecutando una versión de 64 bits de Windows Server 2008, Windows Vista, Windows 7 o Windows Server 2008 R2.
  • En este equipo, un proceso llama a la función CreateProcessWithTokenW para crear un proceso secundario que se ejecuta en Windows de 32 bits en Windows de 64 bits (WOW64).
  • Se crea el proceso secundario de WOW64 para redirigir la entrada estándar (STDIN), salida estándar (STDOUT) y error estándar (STDERR).
En este escenario, las redirecciones no funcionan en el proceso secundario de WOW64. Por lo tanto, las aplicaciones o los servicios que dependen de la característica de redirección no funcionan.

Causa


Hay dos bloques de entorno de proceso (PEBs) para cada proceso de WOW64child. Se utiliza un PEB para procesos de 64 bits y el otro PEB se utiliza para procesos de 32 bits que se ejecutan en el entorno de emulación WOW64.

La función CreateProcessWithTokenW sólo duplica los identificadores de STDIN, STDOUT y STDERR del proceso primario para el PEB para procesos de 64 bits. Sin embargo, esta función duplicar estos identificadores de la PEB para procesos de 32 bits que se ejecutan en el entorno de emulación WOW64. Este comportamiento hace que el proceso secundario que se ejecuta bajo WOW64 para que no pueda utilizar las asas redirigidas. Por lo tanto, no las redirecciones.

Solución


Información de la revisión

Existe un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir el problema que se describe en este artículo. Aplique esta revisión solamente a sistemas que experimenten el problema descripto en este artículo. Esta revisión podría ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la próxima actualización de software que contenga este hotfix.

Si la revisión está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, póngase en contacto con el servicio al cliente de Microsoft y soporte técnico para obtener la revisión.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:Nota: El formulario de "Descarga de Hotfix disponible" muestra los idiomas para los que el Hotfix está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.

Requisitos previos

Para aplicar este hotfix, el equipo debe estar ejecutando uno de los siguientes sistemas operativos:
  • Windows Vista Service Pack 1 (SP1)
  • Windows Vista Service Pack 2 (SP2)
  • Windows Server 2008
  • Windows Server 2008 Service Pack 2 (SP2)
  • Windows 7
  • Windows Server 2008 R2

Requisito de reinicio

Debe reiniciar el equipo después de aplicar este hotfix.

Información del registro

No es necesario realizar ningún cambio en el registro.

Información de archivo

La versión en inglés (Estados Unidos) de esta revisión instala archivos que tienen los atributos enumerados en las tablas siguientes. Las fechas y las horas de estos archivos se muestran en la hora Universal coordinada (UTC). Las fechas y las horas de estos archivos en el equipo local se muestran en horario local junto con la diferencia de horario de verano (DST) actual. Además, las fechas y las horas pueden cambiar cuando realiza determinadas operaciones en los archivos.
Notas sobre la información de archivos de Windows Vista y Windows Server 2008
Importante: Correcciones urgentes de Windows Vista y Windows Server 2008 se incluyen en los mismos paquetes. Sin embargo, sólo "Windows Vista" aparece en la página solicitud de revisión. Para solicitar el paquete de revisiones que se aplica a uno o ambos sistemas operativos, seleccione la revisión que aparece en "Windows Vista" en la página. Siempre consulte la sección "Aplicable a" de los artículos para determinar el sistema operativo real a la que se aplica cada revisión.
  • Los archivos que se aplican a un producto específico, SR_Level (RTM, SPn) y servicio (LDR, GDR) se pueden identificar examinando los números de versión de archivo como se muestra en la siguiente tabla.
    VersiónProductoSR_LevelTipo de servicio
    6.0.600
    1.
    22 xxx
    Windows Vista y Windows Server 2008SP1LDR
    6.0.600
    2.
    22 xxx
    Windows Vista y Windows Server 2008SP2LDR
  • Service Pack 1 está integrado en la versión comercial de Windows Server 2008.
  • Los archivos MANIFEST (.manifest) y los MUM archivos (.mum) que se instalan para cada entorno están enumerados por separado en la sección "Información para Windows Server 2008 y Windows Vista de archivo adicional". Los archivos MUM y archivos de manifiesto y los archivos de catálogo (.cat) de seguridad asociados, son extremadamente importantes mantener el estado de los componentes actualizados. Los archivos de catálogo de seguridad, para los cuales no se muestran los atributos, están firmados con una firma digital de Microsoft.
Para todas las versiones de x64 de Windows Server 2008 y Windows Vista
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Seclogon.dll6.0.6001.2243129.18412-May-200916:06x64
Seclogon.dll6.0.6002.2213429.18412-May-200915:41x64
Para todas las versiones basadas en Itanium de Windows Server 2008
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Seclogon.dll6.0.6001.2243157,85612-May-200915:46IA-64
Seclogon.dll6.0.6002.2213457,85612-May-200915:33IA-64
Notas sobre la información de archivos de Windows 7 y Windows Server 2008 R2
Importante: Correcciones urgentes de Windows 7 y Windows Server 2008 R2 se incluyen en los mismos paquetes. Sin embargo, las revisiones en la página solicitud de revisión se enumeran en ambos sistemas operativos. Para solicitar el paquete de revisiones que se aplica a uno o ambos sistemas operativos, seleccione la revisión que aparece bajo "Windows 7/Windows Server 2008 R2" en la página. Siempre consulte la sección "Aplicable a" de los artículos para determinar el sistema operativo real a la que se aplica cada revisión.
  • Los archivos MANIFEST (.manifest) y los MUM archivos (.mum) que se instalan para cada entorno están enumerados por separado en la sección "Información para Windows Server 2008 R2 y Windows 7 de archivo adicional". MUM y los archivos de manifiesto y los archivos de catálogo (.cat) de seguridad asociados, son extremadamente importantes para mantener el estado de los componentes actualizados. Los archivos de catálogo de seguridad, para los cuales no se muestran los atributos, están firmados con una firma digital de Microsoft.
Para todas las versiones basadas en x64 de Windows 7 y Windows Server 2008 R2
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Seclogon.dll6.1.7600.2078730.72021-Aug-201007:24x64
Para todas las versiones basadas en IA-64 compatibles de Windows Server 2008 R2
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Seclogon.dll6.1.7600.2078765.02421-Aug-201006:29IA-64

Solución alternativa


Para evitar este problema, llame a la función CreateProcessAsUser para crear un proceso secundario.

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información


Para obtener más información acerca de la función CreateProcessWithTokenW , visite el siguiente sitio Web de Microsoft:Para obtener más información acerca de la función CreateProcessAsUser , visite el siguiente sitio Web de Microsoft:Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:

824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft


Información adicional de archivos

Información de archivo adicional para Windows Vista y Windows Server 2008

Archivos adicionales para todas las x64 basado en versiones compatibles de Windows Vista y Windows Server 2008
Nombre del archivoAmd64_4a7908b357eecad45497e7a614da5ab2_31bf3856ad364e35_6.0.6001.22431_none_eff62086a34ac976.manifest
Versión del archivoNo aplicable
Tamaño de archivo713
Fecha (UTC)13-May-2009
Hora (UTC)03:32
PlataformaNo aplicable
Nombre del archivoAmd64_e18aeae085cca5f39361c0ace1ecfedf_31bf3856ad364e35_6.0.6002.22134_none_c800fbe0d1aafeca.manifest
Versión del archivoNo aplicable
Tamaño de archivo713
Fecha (UTC)13-May-2009
Hora (UTC)03:32
PlataformaNo aplicable
Nombre del archivoAmd64_microsoft-windows-secondarylogonservice_31bf3856ad364e35_6.0.6001.22431_none_48ed2db26d293c6b.manifest
Versión del archivoNo aplicable
Tamaño de archivo7,582
Fecha (UTC)12-May-2009
Hora (UTC)19:30
PlataformaNo aplicable
Nombre del archivoAmd64_microsoft-windows-secondarylogonservice_31bf3856ad364e35_6.0.6002.22134_none_4ad6a0786a4cdd94.manifest
Versión del archivoNo aplicable
Tamaño de archivo7,582
Fecha (UTC)12-May-2009
Hora (UTC)19:25
PlataformaNo aplicable
Nombre del archivoUpdate.mum
Versión del archivoNo aplicable
Tamaño de archivo2,598
Fecha (UTC)13-May-2009
Hora (UTC)03:32
PlataformaNo aplicable
Archivos adicionales para todas las versiones compatibles basadas en IA-64 de Windows Server 2008
Nombre del archivoIa64_23caceaa3d7286a9ff4a23775ef4da54_31bf3856ad364e35_6.0.6002.22134_none_d01b4e8816bf0190.manifest
Versión del archivoNo aplicable
Tamaño de archivo711
Fecha (UTC)13-May-2009
Hora (UTC)03:32
PlataformaNo aplicable
Nombre del archivoIa64_68069bedf1d5a4bd9f3dc637561ff507_31bf3856ad364e35_6.0.6001.22431_none_349d44d96d664fea.manifest
Versión del archivoNo aplicable
Tamaño de archivo711
Fecha (UTC)13-May-2009
Hora (UTC)03:32
PlataformaNo aplicable
Nombre del archivoIa64_microsoft-windows-secondarylogonservice_31bf3856ad364e35_6.0.6001.22431_none_ecd03624b4c9d431.manifest
Versión del archivoNo aplicable
Tamaño de archivo7,572
Fecha (UTC)12-May-2009
Hora (UTC)19:14
PlataformaNo aplicable
Nombre del archivoIa64_microsoft-windows-secondarylogonservice_31bf3856ad364e35_6.0.6002.22134_none_eeb9a8eab1ed755a.manifest
Versión del archivoNo aplicable
Tamaño de archivo7,572
Fecha (UTC)12-May-2009
Hora (UTC)19:07
PlataformaNo aplicable
Nombre del archivoUpdate.mum
Versión del archivoNo aplicable
Tamaño de archivo1.924
Fecha (UTC)13-May-2009
Hora (UTC)03:32
PlataformaNo aplicable

Información de archivo adicional para Windows 7 y Windows Server 2008 R2

Archivos adicionales para todas las versiones basadas en x64 de Windows 7 y Windows Server 2008 R2
Nombre del archivoAmd64_445df96a83014fe57068b08a79da6683_31bf3856ad364e35_6.1.7600.20787_none_20591bc8c261086c.manifest
Versión del archivoNo aplicable
Tamaño de archivo713
Fecha (UTC)21-Aug-2010
Hora (UTC)12:03
PlataformaNo aplicable
Nombre del archivoAmd64_microsoft-windows-secondarylogonservice_31bf3856ad364e35_6.1.7600.20787_none_48e4f3e3ce639760.manifest
Versión del archivoNo aplicable
Tamaño de archivo4.810
Fecha (UTC)21-Aug-2010
Hora (UTC)08:37
PlataformaNo aplicable
Nombre del archivoUpdate.mum
Versión del archivoNo aplicable
Tamaño de archivo1,886
Fecha (UTC)21-Aug-2010
Hora (UTC)12:03
PlataformaNo aplicable
Archivos adicionales para todas las versiones basadas en IA-64 de Windows Server 2008 R2
Nombre del archivoIa64_a48ab9ecdf2f4b1206e2ae93b7bb6a43_31bf3856ad364e35_6.1.7600.20787_none_172788f1fbdb93a7.manifest
Versión del archivoNo aplicable
Tamaño de archivo711
Fecha (UTC)21-Aug-2010
Hora (UTC)12:03
PlataformaNo aplicable
Nombre del archivoIa64_microsoft-windows-secondarylogonservice_31bf3856ad364e35_6.1.7600.20787_none_ecc7fc5616042f26.manifest
Versión del archivoNo aplicable
Tamaño de archivo4.808
Fecha (UTC)21-Aug-2010
Hora (UTC)08:17
PlataformaNo aplicable
Nombre del archivoUpdate.mum
Versión del archivoNo aplicable
Tamaño de archivo1,684
Fecha (UTC)21-Aug-2010
Hora (UTC)12:03
PlataformaNo aplicable