Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation 7-314
Three levels of exploiting Windows 2000 Running your current application on Windows 2000 Running your current application on Windows 2000 Certified for Windows 2000 Certified for Windows 2000 Target Windows 2000 features Target Windows 2000 features
Getting the site ready Run your applications on Windows 2000 Run your applications on Windows Moving Applications to Windows Moving Applications to Windows 2000
Most Common Issues Installation Installation Version Checking Version Checking Uninstall Uninstall Path issues Path issues Large Drives Large Drives Heap Management Heap Management
The Foundation Certified for Windows Your Application: Your Application: Is more manageable Is more reliable Reduces cost of ownership for your customers Developing Windows 2000 Certified Applications Developing Windows 2000 Certified Applications
Desktop Requirements Window Fundamentals Window Fundamentals Windows Installer Service Windows Installer Service Component Sharing Component Sharing Data and Settings Management Data and Settings Management User Interface Fundamentals User Interface Fundamentals OnNow/ACPI Support OnNow/ACPI Support Application Migration Application Migration
Server Requirements Window Fundamentals Window Fundamentals Install / Uninstall Install / Uninstall User Interface Fundamentals User Interface Fundamentals Active Directory Active Directory Security Services Security Services Cluster Service Cluster Service
Windows Installer OS resident Application Installation Service OS resident Application Installation Service Introduced with Office 2000 and Windows 2000 Available for Windows 95 and Windows NT 4.0 and up. Provides a standard, consistent way to install applications Provides a standard, consistent way to install applications API for applications and management tools API for applications and management tools Building and Customizing Windows Installer Packages Building and Customizing Windows Installer Packages
Component Sharing Ending DLL Hell Ending DLL Hell DLL Redirection DLL Redirection Side by Side component sharing Side by Side component sharing Ending DLL Hell Ending DLL Hell
Data and Settings Management Enable a managed desktop Enable a managed desktop Enable Roaming Users Enable Roaming Users Enable Multiple Users per Machine Enable Multiple Users per Machine Increased importance for Whistler Building Manageable Applications Building Manageable Applications
Active Directory The directory service used in Microsoft® Windows® 2000 and is The directory service used in Microsoft® Windows® 2000 and is The foundation of Windows 2000 distributed networks. The foundation of Windows 2000 distributed networks Active Directory Programming in- depth using ADSI 7-402Active Directory Programming in- depth using ADSI 7-403Building Active Directory-enabled Applications (Part 1) 7-403Building Active Directory-enabled Applications (Part 1) 7-404Building Active Directory-enabled Applications (Part 2) 7-404Building Active Directory-enabled Applications (Part 2)
Security Services Windows 2000 provides a secure operating environment. Windows 2000 provides a secure operating environment. Access controls can be placed on various system resources. Access controls can be placed on various system resources Developing Applications for Secure Windows Developing Applications for Secure Windows
Cluster Service Cluster service shipping in Advanced and DataCenter server provides an easy way to make any application highly available. Cluster service shipping in Advanced and DataCenter server provides an easy way to make any application highly available Developing Cluster Service Aware Applications Developing Cluster Service Aware Applications
Beyond the Spec Take advantage of Windows 2000 features Take advantage of Windows 2000 features
Windows Management Instrumentation (WMI) Microsoft implementation of Web- Based Enterprise Management (WBEM) Microsoft implementation of Web- Based Enterprise Management (WBEM) Industry initiative to develop a standard technology for accessing management information in an enterprise environment. Industry initiative to develop a standard technology for accessing management information in an enterprise environment Windows Management Instrumentation Windows Management Instrumentation Building Manageability Solutions Using WMI Building Manageability Solutions Using WMI
Scripting WSH 2.0 ships in Windows 2000, downloadable for other platforms WSH 2.0 ships in Windows 2000, downloadable for other platforms Windows Script for Developers Windows Script for Developers
Debugging and Error Handling Debug Help Library replaces ImageHLP Debug Help Library replaces ImageHLP Event Tracing Event Tracing Tool Help Library Tool Help Library
Memory Breaking the 2 Gig Limitation Breaking the 2 Gig Limitation Address Windowing Extensions Address Windowing Extensions Manipulate physical memory greater than 4GB Non-paged Limited to RAM on system Windows 2000, 64-bit Edition Windows 2000, 64-bit Edition 8,188 Gigs
International Features Unicode Unicode Complex Scripts Complex Scripts Uniscribe Uniscribe Opentype Opentype
Some New Managers Power Management Power Management Synchronization Manager Synchronization Manager Removable Storage Manager Removable Storage Manager
NTFS File System Changes Hard Links Hard Links Change Journal Change Journal Disk Quotas Disk Quotas Distributed Link Tracking Distributed Link Tracking Encrypted File System Encrypted File System Reparse Points Reparse Points Sparse files Sparse files
Job Object New kernel object New kernel object Can be named Can be secured Group of related processes Group of related processes Manage and track process group Manage and track process group System enforces job quotas and security context System enforces job quotas and security context
Thread Pooling System-managed thread-pool for apps System-managed thread-pool for apps Saves resources: fewer threads waiting for single objects Less code: no thread creation/destruction/communication Register a wait with callback function Register a wait with callback function Queue asynchronous function call Queue asynchronous function call Timer Queue Timer Queue Asynchronous I/O Requeusts Asynchronous I/O Requeusts
Message Windows Pass HWND_MESSAGE as parent HWND to CreateWindow(Ex) Pass HWND_MESSAGE as parent HWND to CreateWindow(Ex) Allows send/receive of messages Allows send/receive of messages Not visible, no Z-order, not normally enumerated, doesn’t receive broadcast messages Not visible, no Z-order, not normally enumerated, doesn’t receive broadcast messages FindWindowEx FindWindowEx Finds if hwndParent is HWND_MESSAGE Finds is hwndParent & hwndChild are NULL
Layered Windows Alpha Blending Layered Windows Layered Windows WS_EX_LAYERED Alpha Blending Alpha Blending AlphaBlend function like StretchBlt w/BLENDFUNCTION struct
Miscellaneous CreateProcessWithLogonW CreateProcessWithLogonW GetVersionInfo, VerifyVersionInfo GetVersionInfo, VerifyVersionInfo Build/service pack info InitializeCriticalSectionAndSpinCount, SetCriticalSectionSpinCount InitializeCriticalSectionAndSpinCount, SetCriticalSectionSpinCount For SMP machines only Registry Functions Registry Functions RegOpenCurrentUser RegOpenUserClassesRoot RegOverridePredefKey
Miscellaneous SendInput SendInput HTML Resource type HTML Resource type New common controls New common controls IP address, date/time, IE-style toolbars, page scroller Print Property Sheet Common Dialogs Print Property Sheet Common Dialogs
More Keyboard Keys for Browsing and Other Functions Keyboard Keys for Browsing and Other Functions Window Animation Window Animation Window Layout and Mirroring Window Layout and Mirroring XBUTTONs XBUTTONs Smooth Shading Smooth Shading
Questions ?