Exploiting Windows Exploiting Windows 20002000
Kyle MarshKyle MarshSoftware Design EngineerSoftware Design EngineerWindows EvangelismWindows EvangelismMicrosoft CorporationMicrosoft Corporation7-3147-314
Three levels of exploiting Three levels of exploiting Windows 2000Windows 2000
Running your current application Running your current application on Windows 2000on Windows 2000
Certified for Windows 2000Certified for Windows 2000 Target Windows 2000 featuresTarget Windows 2000 features
Getting the site readyGetting the site ready
Run your Run your applications on applications on Windows 2000Windows 2000
7-324 Moving 7-324 Moving Applications to Applications to Windows 2000Windows 2000
Most Common IssuesMost Common Issues
InstallationInstallation Version CheckingVersion Checking UninstallUninstall Path issuesPath issues Large DrivesLarge Drives Heap ManagementHeap Management
The FoundationThe FoundationCertified for WindowsCertified for Windows
Your Application:Your Application: Is more manageable Is more manageable Is more reliableIs more reliable Reduces cost of Reduces cost of
ownership for your ownership for your customerscustomers
7-312 Developing 7-312 Developing Windows 2000 Windows 2000 Certified ApplicationsCertified Applications
Desktop RequirementsDesktop Requirements Window FundamentalsWindow Fundamentals Windows Installer ServiceWindows Installer Service Component SharingComponent Sharing Data and Settings ManagementData and Settings Management User Interface FundamentalsUser Interface Fundamentals OnNow/ACPI SupportOnNow/ACPI Support Application MigrationApplication Migration
Server RequirementsServer Requirements
Window FundamentalsWindow Fundamentals Install / Uninstall Install / Uninstall User Interface FundamentalsUser Interface Fundamentals Active DirectoryActive Directory Security ServicesSecurity Services Cluster Service Cluster Service
Windows InstallerWindows Installer OS resident Application Installation OS resident Application Installation
ServiceService Introduced with Office 2000 and Windows 2000Introduced with Office 2000 and Windows 2000 Available for Windows 95 and Windows NT 4.0 and Available for Windows 95 and Windows NT 4.0 and
up.up.
Provides a standard, consistent way to Provides a standard, consistent way to install applicationsinstall applications
API for applications and management API for applications and management toolstools
7-302 Building and Customizing 7-302 Building and Customizing Windows Installer PackagesWindows Installer Packages
Component SharingComponent Sharing
Ending DLL HellEnding DLL Hell DLL RedirectionDLL Redirection Side by Side component sharingSide by Side component sharing 7-313 Ending DLL Hell7-313 Ending DLL Hell
Data and Settings Data and Settings ManagementManagement Enable a managed desktopEnable a managed desktop Enable Roaming UsersEnable Roaming Users Enable Multiple Users per MachineEnable Multiple Users per Machine
Increased importance for WhistlerIncreased importance for Whistler 7-304 Building Manageable 7-304 Building Manageable
ApplicationsApplications
Active DirectoryActive Directory
The directory service used in The directory service used in Microsoft® Windows® 2000 and is Microsoft® Windows® 2000 and is
The foundation of Windows 2000 The foundation of Windows 2000 distributed networks. distributed networks.
7-4027-402Active Directory Programming in-Active Directory Programming in-depth using ADSIdepth using ADSI
7-4037-403Building Active Directory-enabled Building Active Directory-enabled Applications (Part 1)Applications (Part 1)
7-4047-404Building Active Directory-enabled Building Active Directory-enabled Applications (Part 2)Applications (Part 2)
Security ServicesSecurity Services
Windows 2000 provides a secure Windows 2000 provides a secure operating environment. operating environment.
Access controls can be placed on Access controls can be placed on various system resources.various system resources.
7-310 Developing Applications for 7-310 Developing Applications for Secure WindowsSecure Windows
Cluster ServiceCluster Service
Cluster service shipping in Cluster service shipping in Advanced and DataCenter server Advanced and DataCenter server provides an easy way to make any provides an easy way to make any application highly available. application highly available.
7-311 Developing Cluster Service 7-311 Developing Cluster Service Aware ApplicationsAware Applications
Beyond the SpecBeyond the Spec
Take Take advantage of advantage of Windows Windows 2000 features2000 features
Windows Management Windows Management Instrumentation (WMI)Instrumentation (WMI)
Microsoft implementation of Web-Microsoft implementation of Web-Based Enterprise Management Based Enterprise Management (WBEM)(WBEM)
Industry initiative to develop a Industry initiative to develop a standard technology for accessing standard technology for accessing management information in an management information in an enterprise environment. enterprise environment.
7-332 Windows Management 7-332 Windows Management InstrumentationInstrumentation
7-303 Building Manageability 7-303 Building Manageability Solutions Using WMISolutions Using WMI
Scripting Scripting
WSH 2.0 ships in Windows 2000, WSH 2.0 ships in Windows 2000, downloadable for other platformsdownloadable for other platforms
7-334 Windows Script for 7-334 Windows Script for DevelopersDevelopers
Debugging and Error Debugging and Error HandlingHandling
Debug Help Library replaces Debug Help Library replaces ImageHLPImageHLP
Event TracingEvent Tracing Tool Help LibraryTool Help Library
MemoryMemory
Breaking the 2 Gig LimitationBreaking the 2 Gig Limitation Address Windowing Extensions Address Windowing Extensions
Manipulate physical memory greater Manipulate physical memory greater than 4GBthan 4GB
Non-pagedNon-paged Limited to RAM on systemLimited to RAM on system
Windows 2000, 64-bit EditionWindows 2000, 64-bit Edition 8,188 Gigs8,188 Gigs
International FeaturesInternational Features
UnicodeUnicode Complex ScriptsComplex Scripts UniscribeUniscribe OpentypeOpentype
Some New ManagersSome New Managers
Power ManagementPower Management Synchronization Manager Synchronization Manager Removable Storage Manager Removable Storage Manager
NTFS File System ChangesNTFS File System Changes
Hard LinksHard Links Change JournalChange Journal Disk QuotasDisk Quotas Distributed Link TrackingDistributed Link Tracking Encrypted File SystemEncrypted File System Reparse PointsReparse Points Sparse filesSparse files
Job ObjectJob Object
New kernel objectNew kernel object Can be namedCan be named Can be securedCan be secured
Group of related processesGroup of related processes Manage and track process groupManage and track process group System enforces job quotas and System enforces job quotas and
security contextsecurity context
Thread PoolingThread Pooling
System-managed thread-pool for appsSystem-managed thread-pool for apps Saves resources: fewer threads waiting Saves resources: fewer threads waiting
for single objectsfor single objects Less code: no thread Less code: no thread
creation/destruction/communicationcreation/destruction/communication Register a wait with callback functionRegister a wait with callback function Queue asynchronous function callQueue asynchronous function call Timer QueueTimer Queue Asynchronous I/O RequeustsAsynchronous I/O Requeusts
Message WindowsMessage Windows
Pass HWND_MESSAGE as parent Pass HWND_MESSAGE as parent HWND to CreateWindow(Ex)HWND to CreateWindow(Ex)
Allows send/receive of messagesAllows send/receive of messages Not visible, no Z-order, not normally Not visible, no Z-order, not normally
enumerated, doesn’t receive broadcast enumerated, doesn’t receive broadcast messagesmessages
FindWindowExFindWindowEx Finds if hwndParent is HWND_MESSAGEFinds if hwndParent is HWND_MESSAGE Finds is hwndParent & hwndChild are Finds is hwndParent & hwndChild are
NULLNULL
Layered WindowsLayered WindowsAlpha BlendingAlpha Blending Layered WindowsLayered Windows
WS_EX_LAYEREDWS_EX_LAYERED Alpha BlendingAlpha Blending
AlphaBlend function like StretchBlt AlphaBlend function like StretchBlt w/BLENDFUNCTION structw/BLENDFUNCTION struct
MiscellaneousMiscellaneous
CreateProcessWithLogonW CreateProcessWithLogonW GetVersionInfo, VerifyVersionInfoGetVersionInfo, VerifyVersionInfo
Build/service pack infoBuild/service pack info InitializeCriticalSectionAndSpinCount, InitializeCriticalSectionAndSpinCount,
SetCriticalSectionSpinCountSetCriticalSectionSpinCount For SMP machines onlyFor SMP machines only
Registry FunctionsRegistry Functions RegOpenCurrentUserRegOpenCurrentUser RegOpenUserClassesRootRegOpenUserClassesRoot RegOverridePredefKeyRegOverridePredefKey
MiscellaneousMiscellaneous
SendInput SendInput HTML Resource typeHTML Resource type New common controlsNew common controls
IP address, date/time, IE-style toolbars, IP address, date/time, IE-style toolbars, page scrollerpage scroller
Print Property Sheet Common DialogsPrint Property Sheet Common Dialogs
More More
Keyboard Keys for Browsing and Other Keyboard Keys for Browsing and Other FunctionsFunctions
Window AnimationWindow Animation Window Layout and MirroringWindow Layout and Mirroring XBUTTONsXBUTTONs Smooth ShadingSmooth Shading
Questions ?Questions ?