Title: Nueva Arquitectura y APIs de Windows
1Nueva Arquitectura y APIsde Windows 2000
Ricardo RenterÃa FSE ManagerMicrosoft
México
2Administración de EnergÃa
3Objetivo
- Conservar la energÃa de la baterÃa
- Sin pérdida o daño sobre los datos
- Se notifica a las aplicaciones sobre problemas de
energÃa - Las aplicaciones pueden obtener el status de la
energÃa - Las aplicaciones pueden informar a Windows de los
requerimientos de energÃa
4Estado de la EnergÃa del Sistema
- Notificaciones de estado (CA/baterÃa, carga
baja) - Mensaje WM_POWERBROADCAST
- GetSystemPowerStatus()
- BaterÃa o CA
- Informaciónde la carga de la baterÃa (crÃtica,
baja, alta, cargando) - BaterÃa restante en porcentaje o en segundos
- Vida de la baterÃa con carga completa
5Cuándo puede entrar el sistema en modo de Reposo?
- Si no detecta actividad por un tiempo definido,
el sistema entra en reposo - SetThreadExecutionState() reestablece el contador
- ES_DISPLAY_REQUIRED PowerPoint, reproductor de
DVD - ES_SYSTEM_REQUIRED FAX software
- ES_USER_PRESENT Entrada de joystick
- ES_CONTINUOUS Siempre reestablece el tiempo de
inactividad 0
6Como cuidar la energÃa
- Informe al sistema de los requerimientos de sus
aplicaciones - Sistema/Pantalla/Usuario y latencia del sistema
- Antes de usar la computadora por largos periodos,
verifique la baterÃa y dé aviso - Formateo de disco, compresión de archivos, etc
- Envie la información de las aplicaciones al disco
si la carga de la baterÃa esta baja - Para evitar la pérdida de datos al apagar la
máquina de forma abrupta - Para operación idle, verifique el dispositivo
antes de usarlo - GetDevicePowerState()
- Ejemplo El Ãndice de contenido solo debe indexar
si el disco ya está girando
7Soporte de Múltiples Monitores
8Soporte de Múltiples Monitores
- Escritorio virtual Cada monitor es parte de un
solo escritorio - El usuario configura tamaño/posición de cada
monitor - Windows se desplaza entre monitores
- Duplicación y despliegue remoto de Pantalla
Cada pantalla muestra lo mismo - Varios pantallas independientes Las
aplicaciones tienen acceso exclusivo a una
pantalla - Juegos, presentación
9Escritorio virtual
- El escritorio abarca varios monitores
- Un monitor es primario
- Se utiliza para la compatibilidad de las
aplicaciones - (izquierda, arriba) (0, 0) siempre
- Los monitores pueden tener coordenadas negativas
- Las medidas del sistema se refieren al primario
- El rectángulo lÃmite es el escritorio virtual
- Cada monitor tiene su propia área de trabajo,
resolución, y color depth
10Propiedad de Monitor y Funciones
- El monitor owning tiene la mayorÃa de las
ventanas - Las ventanas Hijo/owned permanecen en el mismo
monitor - Windows maximiza a un monitor individual
- Los menús nunca se extienden a lo largo de los
monitores
11Compatibilidad
- La mayorÃa de las aplicaciones funciona bajo su
configuración original - Un escritorio grande
- Las Métricasdel Sistema reflejan el display
primario - Las aplicaciones de pantalla completa aparecen en
el primario - El sistema realiza min/max de ventanas,
menus/dialogos - Elementos de Compatibilidad
- Los barredores de pantalla sólo cubren a los
primarios - Algunas aplicaciones no admiten coordenadas
negativas - Algunas aplicaciones restringen/centran las
ventanes al primario - Acceso directo al hardware (sin DirectX)
- Patch GDI or de controlador DISPLAY
- Peor caso Deshabilita los monitores secundarios
12Cambios en el Sistema de Archivos NTFS
13Cambios en el Sistema de Archivos NTFS
- Ligas Duras (sólo archivos)
- Un solo archivo con varios pathnames
- Se comparten todos los atributos
- Utilice la función CreateHardLink
- Atributos Reparse Point
- El filtro FS modifica la operación abierta
archivo/dir - El atributo Reparse es de 16KB de datos en
archivo/dir - Unión de directorios (C\CDROM-gtX\)
- HSM
- Rehubicación del contenido de los archivos para
almacenamiento fuera de lÃnea - Acceso de fallas de archivo en contenido near-line
14Change Journal
- Rastrea todos los cambios en el volumen (por
tiempo) - Tamaño ajustable (o deshabilitado)
- Tamaño real 16MB, récord 128 bytes,cambios
4/sec, tiempo hasta lleno 8 hours - buffer CJ implementado como cola dispersa de
archivo - Todas las aplicaciones aceden a un stream
individual - Evita cruces de volumen
- Ahorra tiempo, código y memoria
- Las entradas obtienen un número único de
secuencia (USN) de 64-bits
15Sparse Streams
- División del Stream en unidades de compresión
- 16 clusters de largo
- Ejemlpo Archivo de 120KB
- Offset Clstrs Notas0 10 Comprimido no disperso
32768 0 Disperso65536 12 Comprimido no
disperso 98304 12 No comprimido no disperso
16Cambios al Kernel
17Cambios de Memoria
- Rebasa la barrera de los 2-GB
- Objetivo bases de datos, y aplicaciones
cientÃficas o de ingenierÃa - Solo para Advanced Server y Data Center
- La RAM fÃsica no es barrida a/desde el disco
- Memoria Muy Grande (Vlm)
- Solo CPU Alpha
- Address Windowing Extensions
- Cruce de información rápido de páginas fÃsicas
32-bit address space
18Objeto de Trabajo
- Nuevo objeto kernel
- Puede nombrarse
- Puede ser asegurada
- Grupo de procesos relacionados
- Administra y rastrea el grupo de procesamiento
- El sistema refuerza la carga de trabajo y el
contexto de seguridad
19Funciones de Objeto Trabajo
- CreateJobObject
- OpenJobObject
- AssignProcessToJobObject
- TerminateJobObject
- QueryInformationJobObject
- SetInformationJobObject
- UserHandleGrantAccess
20Que puede establecer
- LÃmites Básicos
- LÃmite de tiempo del usuario por proceso y por
trabajo, tamaño preestablecido de trabajo
mÃnimo/máximo, número de procesos, afinidad del
procesador, clase de prioridad - Restricciones UI
- ExitWindow(Ex), acceso a objetos de USUARIO de
no-trabajo, clipboard de lectura, clipboard de
escritura, para cambios SystemParametersInfo - LÃmites de Seguridad
- No tokens administrativos, sólo tokens
restringidos, token filtro
21Que Puede Consultar
- Información de cuentas
- Tiempo total kernel del usuario, tiempo de este
periodo kernel del usuario, fallas de la página
de total, procesos totales, procesos activos,
procesos terminados totales - Lista de Identificación de proceso
- Identificación de cada proceso que esté
ejecutando en job
22Thread Pooling
- Thread-pool administrado por el sistema, para las
aplicaciones - Ahorra recursos menos threads en espera de
objetos individuales - Menor código sin thread de creación/destrucción/
comunicación - Registre la espera con la función callback
- RegisterWaitForSingleObject(hObj, pfn, pvData,
dwTimeout, dwFlags) - UnregisterWaitEx
- Llamada de función en cola asÃncrona
QueueUserWorkItem(pfn, pvData, dwFlags)
23Thread Pooling????
- Teporizador de Cola
- CreateTimerQueueTimer(phTimer, hQueue, pfn,
pvData, dwDueTime, dwPeriod, dwFlags) - CreateTimerQueue / DeleteTimerQueueEx
- Solicitudes I/O AsÃncronas
- BindIoCompletionCallback(hDevice, pfn,dwFlags)
24Varios
- CreateProcessWithLogonW
- Funciones ToolHelp
- GetVersionInfo y OSVERSIONINFOEX
- información de paquete Build/service
- IsDebuggerPresent
- InitializeCriticalSectionAndSpinCount,
SetCriticalSectionSpinCount - Sólo para máquinas SMP
- IsProcessorFeaturePresent
- El error de punto flotante de Pentium, es emulado
por punto flotante en el software, MMX
disponible, y otros
25Cambios Usuario/GDI
26Ventanas de Mensaje
- Pasar HWND_MESSAGE como padre HWND a
CreateWindow(Ex) - Permiten la recepción/envÃo de mensajes
- No es visible, no tiene un orden Z, no es
enumerada normalmente, no recibe mensajes
broadcast - FindWindowEx
- Encuentra si hwndParent es HWND_MESSAGE
- Encuentra si hwndParent hwndChild son NULOS
27Layered WindowsAlpha Blending
- Ventanas por Capa
- WS_EX_LAYERED
- BOOL UpdateLayeredWindow(HWND hWnd, HDC hdcDst,
PPOINT pptDst, PSIZE psize, HDC hdcSrc, PPOINT
pptSrc, COLORREF crKey, PBLENDFUNCTION pblend,
DWORD dwFlags) - Alpha Blending
- AlphaBlend function like StretchBlt
w/BLENDFUNCTION struct
28SystemParametersInfo
- Mouse hovering dims/time (no hay selección por
click) - Comportamiento X-Mouse
- Animaciones ComboBox/ListBox
- Gradient captions
- Capacidad de Acceso
- Administración de EnergÃa
- Switch de Tareas (habilitas/deshabilitar
AltTab/AltEsc) - Ejecuta con el barredor de pantalla
29Varios
- GetGuiResources (ver Task Manager)
- GetLastInputInfo (ms desde la última entrada)
- LockWorkStation (simula CtrlAltDel)
- SendInput (simula kybd/mouse input set)
- TrackMouseEvent (genera WM_MOUSEHOVER/WM_MOUSELEAV
E msgs) - Recurso tipo HTML
- Nuevos controles comunes
- IP address, date/time, IE-style toolbars, page
scroller
30CurrÃculum Oficial Microsoft
- CurrÃculum técnico Instructor-led, hands-on
desarrollado por Microsoft - Ayuda a los profesionales de la TI a obtener
experiencia con los productos de Microsoft - Disponible en más de 1,900 Centros Certificados
de Educación Técnica de Microsoft en todo el
mundo - CurrÃculums que aplican para esta sesión 1560,
1557, 1579