Introduction

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The MS® Windows® platform continues to evolve, responding to new developments in hardware and software technologies. MS offers two mainstream, modern 32-bit desktop operating systems, Windows NT® Workstation version 4.0 and MS Windows® 95.

MS Windows 95 OEM Service Release 2 (OSR 2), an update to MS Windows 95, adds support for new and emerging hardware. This release includes updates to Windows 95 that have previously been available separately. Beginning in the fourth quarter of 1996, most computer manufacturers who pre-install Windows 95 on new PCs will use OSR 2. Many components of OSR 2 will be available for download from MS at See https://www.MS.com/windows/ for information on Windows 95 OSR 2.

Windows 95, Windows 95 OSR 2, and Windows NT use the same Windows 32-bit application programming interface (the Win32® API). However, Windows 95 and Windows NT are different operating systems with different capabilities. OSR 2 adds additional functionality to Windows 95. There is technology present in each operating system that is not present in the other. As a result, some of the functions of the Win32 API may require different parameters or calling conventions on each platform. Other functions are not implemented on all platforms. This white paper describes the Win32 API differences among the platforms, allowing developers to make appropriate design decisions and create applications that make effective use of the functionality available on Windows platforms.

MS® Windows® 95, Windows 95 OSR 2, and Windows NT® Workstation 4.0 are all 32-bit operating systems that use the same Win32 API. Although the API1 has changed and expanded to encompass new features, programs will, in most cases, work without modification on all three operating systems.

There are some differences among Windows 95, Windows 95 OSR 2, and Windows NT 4.0 that applications must accommodate to run successfully on two or more of those platforms. This white paper discusses several categories of those differences:

  • Windows 95–Specific APIs – Functions that are built-in components of Windows 95 (and Windows 95 OSR 2), but are not available on Windows NT 4.0.

  • Windows 95 OSR 2–Specific APIs – Functions that are built-in components of Windows 95 OSR 2, but are not available on Windows 95 or Windows NT 4.0.

  • Windows 95 OSR 2– and Windows NT 4.0–Specific APIs – Functions that are built-in components of Windows 95 OSR 2 and Windows NT 4.0, but are not available on Windows 95.

  • Common APIs with Calling Differences – Functions that are built-in components of Windows 95 and Windows NT 4.0, but require different calling parameters or return different information on each operating system.

  • Windows NT 4.0 Specific APIs – Functions that are built-in components of Windows NT 4.0, but are not available on Windows 95 or Windows 95 OSR 2.

  • Redistributable APIs – Functions that are built-in components of Windows NT 4.0 and may be used on Windows 95 if redistributable dynamic-link libraries (DLLs) are installed.

On This Page

Windows 95–Specific APIs
Windows 95 OSR 2–Specific APIs
Windows 95 OSR 2–and Windows NT 4.0–Specific APIs
Apis with different implementations on Windows 95 and Windows NT 4.0
Windows NT 4.0–Specific APIs
APIS redistributable with Windows 95
Summary
Additional Resources

Windows 95–Specific APIs

Direct3D

The DirectDraw®, DirectPlay®, DirectSound®, DirectInput™, and Direct3D™ application programming interfaces are provided as redistributable dynamic-link libraries (DLLs) for Windows 95. Redistributable DLLs are not shipped with the operating system. They must be redistributed with the application that uses them.

DirectDraw, DirectPlay, DirectSound, and DirectInput are built-in components of Windows NT version 4.0. Direct 3D is not available for Windows NT 4.0.

Functionality

Windows 95 and OSR 2

Windows NT 4.0

DirectDraw

Provided as redistributable

Built into operating system

DirectPlay

Provided as redistributable

Built into operating system

DirectSound

Provided as redistributable

Built into operating system, runs in emulation mode only

DirectInput

Provided as redistributable

Built into operating system

Direct3D

Provided as redistributable

Not available

Independent Color Matching

The following API functions are not supported in Windows NT version 4.0:

CheckColorsInGamut

ColorMatchToTarget

CreateColorSpace

DeleteColorSpace

EnumICMProfiles

FreeImageColorMatcher

GetColorSpace

GetDeviceGammaRamp

GetICMProfile

GetLogColorSpace

LoadImageColorMatcher

SetColorSpace

SetDeviceGammaRamp

SetICMMode

SetICMProfile

UpdateICMRegKey

Plug and Play

Plug and Play is not supported on Windows NT version 4.0. MS has committed to providing this GetSecurityDescriptorLength functionality with the next major release of Windows NT Workstation. The ICOPEN.dnDevNode structure is not supported in Windows NT.

RT_PLUGPLAY is not supported in Windows NT as a resource type for these API functions.

EnumResLangProc

EnumResNameProc

EnumResTypeProc

EnumResourceLanguages

EnumResourceNames

 

Flat Thunks

Windows NT and Windows 95 use different thunking models. Windows NT supports generic thunks that allow 16-bit code to call functions implemented in 32-bit code. Although Windows 95 supports generic thunks, it does not support the underlying process model used by Windows NT. This means that generic thunking code might not work identically under Windows 95 and Windows NT.

Windows 95 implements its own thunking model, called flat thunks. Flat thunks allow 32-bit code to call functions implemented in 16-bit code. They also allow 16-bit code to call functions implemented in 32-bit code. However, applications that use flat thunks cannot run on Windows NT unless the thunking code is isolated into platform-specific DLLs.

Pen API for Windows

The Pen API is not supported in Windows NT.2

Windows 95 OSR 2–Specific APIs

FAT32 File System

Windows 95 OSR 2 incorporates the FAT32 file system.3 FAT32 is an enhancement of the file allocation table (FAT) file system. FAT32 supports large drives with improved disk space efficiency.

Most Win32-based applications do not need to be revised for FAT32. Only those applications that use low-level disk structures, or in other ways depend upon the on-disk format of data, will need revision.

DirectX 2

Windows 95 OSR 2 includes DirectX™ 2, a set of technologies that assist in multimedia and games programming. DirectX 2 includes DirectDraw, DirectSound, and DirectPlay.4

ActiveMovie

Windows 95 OSR 2 includes the ActiveMovie™ API, a cross-platform digital video technology for the desktop and the Internet. Using ActiveMovie, developers can create and deliver titles on multiple platforms with synchronized audio, video, and special effects.5

MS Internet Explorer 3.0 and the Windows Internet Extensions API

Windows 95 OSR 2 includes MS Internet Explorer 3.0 and the Windows Internet Extensions API (WinInet). WinInet provides a set of abstractions, layered over Windows Sockets, that support programming common operations for Internet protocols such as FTP and Gopher.6

Windows 95 OSR 2–and Windows NT 4.0–Specific APIs

Detecting OSR 2

Use the GetVersionEx function to determine that a system is running Windows 95 OSR 2 or a later release of the Windows 95 operating system.

The GetVersionEx function fills in the members of an OSVERSIONINFO data structure. If the dwPlatformId member of that structure is VER_PLATFORM_WIN32_WINDOWS, and the low word of the dwBuildNumber member is greater than 1080, the system is running either Windows 95 OSR 2 or a later release of Windows 95.

MS-DOS®-based applications can check for an MS-DOS version number of 7.1 or higher to determine whether a system is running either Windows 95 OSR 2 or a later release of Windows 95.

Using Windows 95 OSR 2 Functionality

Some Windows 95 OSR 2 functions can be called directly. For others, you need to call the LoadLibrary or LoadLibraryEx function to load the appropriate DLL file and then call the GetProcAddress function to obtain an address for the function.

Applications that attempt to use Windows 95 OSR 2 functionality should be prepared to fall back to earlier Windows 95 functionality.

Cryptographic API

Windows 95 OSR 2 and Windows NT version 4.0 support the Cryptographic Application Programming Interface (CryptoAPI), a set of functions that allow applications to encrypt or digitally sign data in a flexible manner, while providing protection for the user's sensitive private key data. The following CryptoAPI functions are supported:

CryptAcquireContext

CryptCreateHash

CryptDecript

CryptDeriveKey

CryptDestroyHash

CryptDestroyKey

CryptEncrypt

CryptExportKey

CryptGenKey

CryptGenRandom

CryptGetHashParam

CryptGetKeyParam

CryptGetProvParam

CryptGetUserKey

CryptHashData

CryptHashSessionKey

CryptImportKey

CryptReleaseContext

CryptSetHashParam

CryptSetKeyParam

CryptSetProvider

CryptSetProvParam

CryptSignHash

CryptVerifySignature

GetDiskFreeSpaceEx

Windows 95 OSR 2 and Windows NT version 4.0 support the GetDiskFreeSpaceEx function. In Windows 95 and Windows NT version 3.x, the existing Win32 function GetDiskFreeSpace obtains incorrect values for volumes that are larger than 2 gigabytes (GB). The function caps the values returned and never reports volume sizes greater than 2 GB. Even on volumes that are smaller than 2 GB, the values returned may be incorrect.7 This behavior has not been changed for Windows 95 OSR 2 in order to maintain compatibility with existing applications.

The GetDiskFreeSpaceEx function obtains correct values for all volumes, including those that are larger than 2 GB. New applications should use the GetDiskFreeSpaceEx function.

Applications that need to maintain backward compatibility with earlier Win32-based implementations should be prepared to fall back to the GetDiskFreeSpace function.

Apis with different implementations on Windows 95 and Windows NT 4.0

Unicode

On Windows NT, all functions that accept strings as parameters have both an ANSI and a wide-character version. The functions are post-fixed by "A" and "W." For example, TextOutA accepts an ANSI string and TextOutW accepts a Unicode (wide) string. The wide-character versions of most Win32 API functions are generally not supported on Windows 95.

The following functions are exceptions that are supported on both Windows NT and Windows 95:

MultiByteToWideChar

WideCharToMultiByte

EnumResourceLanguages

EnumResourceNames

EnumResourceTypes

ExtTextOut

FindResource

FindResourceEx

GetCharWidth

GetCommandLine

GetTextExtentExPoint

GetTextExtentPoint32

GetTextExtentPoint

lstrlen

MessageBoxEx

MessageBox

TextOut

 

Security Attributes

Some API functions require a pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle can be inherited by child processes. Calls from Windows NT 4.0 use the lpSecurityDescriptor member of the structure to specify a security descriptor. Windows 95 ignores the lpSecurityDescriptor member of the structure. The following functions take a SECURITY_ATTRIBUTES structure pointer:

CreateConsoleScreenBuffer

CreateDirectory

CreateDirectoryEx

CreateEvent

CreateFile

CreateFileMapping

CreateMailslot

CreateMutex

CreatePipe

CreateProcess

CreateSemaphore

CreateThread

Different Parameters

The following functions either require different parameters when called on Windows 95 and Windows NT, return different information, or return similar information in different ways. A few functions ignore parameters on one platform that are required on the other. Developers should review the Win32 SDK descriptions for any functions on this list that they use in Windows 95 or Windows NT 4.0 applications.

ActivateKeyboardLayout

AddPrinter

Arc

Beep

BeginPath

BroadcastSystemMessage

ChangeMenu

CharLower

CharLowerBuff

CharUpper

CharUpperBuff

CreateDC

CreateDialogIndirect

CreateDialogIndirectParam

CreateFont

DebugActiveProcess

DialogBoxIndirect

DlgDirListComboBox

DrawIcon

EditWordBreakProc

EndPage

EnumFontFamExProc

EnumPrinters

ExitWindows

ExitWindowsEx

ExtCreatePen

FindFirstFile

FlushFileBuffers

GetAsyncKeyState

GetAsyncKeyState

GetClipboardData

GetConsoleCP

GetConsoleOutputCP

GetCurrentHwProfile

GetDIBits

GetFileAttributes

GetGraphicsMode

GetGraphicsMode

GetPrinter

GetPrivateProfileSection

GetPrivateProfileString

GetProcessAffinityMask

GetProfileSection

GetProfileString

GetStockObject

LoadImage

LoadKeyboardLayout

LoadLibrary

LoadLibraryEx

LoadModule

MapViewOfFile

MapViewOfFileEx

MessageBoxIndirect

mouse_event

MoveFileEx

NetServerEnum

OpenFile

OpenFileMapping

RasCreatePhonebookEntry

RasDial

RasEditPhonebookEntry

RasEnumEntries

RasGetEntryDialParams

RasGetProjectionInfo

RasSetEntryDialParams

ReadFile

ReadFileEx

RegCreateKeyEx

RegDeleteKey

RegisterClassEx

RegLoadKey

RegQueryInfoKey

RegReplaceKey

RegSaveKey

RegSaveKey

SearchPath

SetBrushOrgEx

SetClipboardData

SetComputerName

SetFileAttributes

SetGraphicsMode

SetJob

SetLocalTime

SetPrinter

SetSystemTime

SetThreadAffinityMask

ShellProc

StartDocPrinter

StartPage

SystemParametersInfo

SystemTimeToTzSpecificLocalTime

UnloadKeyboardLayout

UnmapViewOfFile

WriteFile

WriteFileEx

 

Windows NT 4.0–Specific APIs

Unicode

On Windows NT, all functions that accept strings as parameters have both an ANSI and a wide-character version. The functions are post-fixed by "A" and "W." For example, TextOutA accepts an ANSI string and TextOutW accepts a Unicode (wide) string. The wide-character versions of most Win32 API functions are generally not supported on Windows 95. For a list of API string functions that are supported in the same way on both Windows NT and Windows 95, see the preceding "Unicode" section under "APIs with Different Implementations on Windows 95 and Windows NT 4.0."

Security

The following Windows NT security API functions are not supported on Windows 95 nor on Windows 95 OSR 2:

AccessCheck

AccessCheckAndAuditAlarm

AddAccessAllowedAce

AddAccessDeniedAce

AddAce

AddAuditAccessAce

AdjustTokenGroups

AdjustTokenPrivileges

AllocateAndInitializeSid

AllocateLocallyUniqueId

AreAllAccessesGranted

AreAnyAccessesGranted

CopySid

CreatePrivateObjectSecurity

DdeImpersonateClient

DeleteAce

DestroyPrivateObjectSecurity

DuplicateToken

EqualPrefixSid

EqualSid

FindFirstFreeAce

FreeSid

GetAce

GetAclInformation

GetFileSecurity

GetKernelObjectSecurity

GetLengthSid

GetPrivateObjectSecurity

GetProcessWindowStation

GetSecurityDescriptorControl

GetSecurityDescriptorDacl

GetSecurityDescriptorGroup

 

GetSecurityDescriptorOwner

GetSecurityDescriptorSacl

GetSidIdentifierAuthority

GetSidLengthRequired

GetSidSubAuthority

GetSidSubAuthorityCount

GetTokenInformation

GetUserObjectSecurity

ImpersonateNamedPipeClient

ImpersonateSelf

InitializeAcl

InitializeSecurityDescriptor

InitializeSid

IsValidAcl

IsValidSecurityDescriptor

IsValidSid

LookupAccountName

LookupAccountSid

LookupPrivilegeDisplayName

LookupPrivilegeName

LookupPrivilegeValue

MakeAbsoluteSD

MakeSelfRelativeSD

MapGenericMask

ObjectCloseAuditAlarm

ObjectOpenAuditAlarm

ObjectPrivilegeAuditAlarm

OpenProcessToken

OpenThreadToken

PrivilegeCheck

PrivilegedServiceAuditAlarm

RevertToSelf

SetAclInformation

SetFileSecurity

SetKernelObjectSecurity

SetPrivateObjectSecurity

SetSecurityDescriptorDacl

SetSecurityDescriptorGroup

SetSecurityDescriptorOwner

SetSecurityDescriptorSacl

SetThreadToken

SetTokenInformation

SetUserObjectSecurity

 

 

Event Logging

The following event logging API functions are not supported on Windows 95 nor on Windows 95 OSR 2:

BackupEventLog

ClearEventLog

CloseEventLog

DeregisterEventSource

GetNumberOfEventLogRecords

GetOldestEventLogRecord

NotifyChangeEventLog

OpenBackupEventLog

OpenEventLog

ReadEventLog

RegisterEventSource

ReportEvent

Service Control Manager

The following service control manager API functions are not supported on Windows 95 nor on Windows 95 OSR 2:

ChangeServiceConfig

CloseServiceHandle

ControlService

CreateService

DeleteService

EnumDependentServices

EnumServicesStatus

GetServiceDisplayName

GetServiceKeyName

LockServiceDatabase

NotifyBootConfigStatus

OpenSCManager

OpenService

QueryServiceConfig

QueryServiceLockStatus

QueryServiceObjectSecurity

QueryServiceStatus

RegisterServiceCtrlHandler

ServiceMain

SetServiceBits

SetServiceObjectSecurity

SetServiceStatus

StartService

StartServiceCtrlDispatcher

UnlockServiceDatabase

 

Multiple Desktops

The following multiple desktops API functions are not supported on Windows 95 nor on Windows 95 OSR 2:

CloseDesktop

CreateDesktop

Create WindowStation

EnumDesktops

EnumDesktopWindows

OpenDesktop

OpenInputDesktop

SwitchDesktop

GetDesktopWindow

GetThreadDesktop

SetThreadDesktop

 

Server-side Named Pipes

Server-side named pipes are not supported on Windows 95 nor on Windows 95 OSR 2. Client-side named pipes are supported on Windows 95, Windows 95 OSR 2, and Windows NT.

Server-oriented Sockets

Server-oriented socket calls are not supported on Windows 95 nor on Windows 95 OSR 2. The following functions are not supported:

AcceptEx

GetAcceptExSockaddrs

TransmitFile

Dynamic PE Updating

Dynamic updating of the resources in portable executable (PE) files is not supported on Windows 95 nor on Windows 95 OSR 2. The following functions are not supported:

BeginUpdateResource

EndUpdateResource

UpdateResource

I/O Completion Ports

I/O completion ports are not supported on Windows 95 nor on Windows 95 OSR 2. The following functions are not supported:

CreateIoCompletionPort

GetQueuedCompletionStatus

PostQueuedCompletionStatus

World Transforms

Certain world transform functions are not supported on Windows 95 nor on Windows 95 OSR 2. The following functions are not supported:

CombineTransform

GetWorldTransform

ModifyWorldTransform

SetWorldTransform

Advanced Blt Functions

Certain advanced blt functions are not supported on Windows 95 nor on Windows 95 OSR 2. The following functions are not supported:

MaskBlt

PlgBlt

Printer Forms

Printer forms print spooler functions are not supported on Windows 95 nor on Windows 95 OSR 2. The following functions are not supported:

AddForm

DeleteForm

EnumForms

GetForm

SetForm

Printer Change Notification

Printer change notification print spooler functions are not supported on Windows 95 nor on Windows 95 OSR 2. The following functions are not supported:

FindClosePrinterChangeNotification

FindFirstPrinterChangeNotification

FindNextPrinterChangeNotification

WaitForPrinterChange

WinSpool Functions

The following WinSpool functions are not supported on Windows 95 nor on Windows 95 OSR 2.

PrinterMessageBox

ResetPrinter

Fibers

Fiber functions are not supported on Windows 95 nor on Windows 95 OSR 2. The following functions are not supported.

ConvertThreadToFiber

CreateFiber

DeleteFiber

GetCurrentFiber

GetFiberData

SwitchToFiber

32-bit LAN Manager

The Windows NT 32-bit LAN Manager Unicode functions exported from NETAPI32.DLL are not supported on Windows 95 nor on Windows 95 OSR 2. Windows 95 supports a subset of LAN Manager ANSI string functions exported from SVRAPI.DLL.8

The following functions are not supported (the bold functions have ANSI string Windows 95 equivalents exported from SVRAPI.DLL):

MultinetGetConnectionPerformance

NetAlertRaise

NetAlertRaiseEx

NetApiBufferAllocate

NetApiBufferFree

NetApiBufferReallocate

NetApiBufferSize

NetFileEnum

NetFileGetInfo

NetGetAnyDCName

NetGetDCName

NetGetDisplayInformationIndex

NetQueryDisplayInformation

NetGroupAdd

NetGroupAddUser

NetGroupDel

NetGroupDelUser

NetGroupEnum

NetGroupGetInfo

NetGroupGetUsers

NetGroupSetInfo

NetGroupSetUsers

NetHandleGetInfo

NetHandleSetInfo

NetLocalGroupAdd

NetLocalGroupAddMembers

NetLocalGroupDel

NetLocalGroupDelMembers

NetLocalGroupEnum

NetLocalGroupGetInfo

NetLocalGroupGetMembers

NetLocalGroupSetInfo

NetLocalGroupSetMembers

NetMessageBufferSend

NetMessageNameAdd

NetMessageNameDel

NetMessageNameEnum

NetMessageNameGetInfo

NetRemoteTOD

NetReplExportDirAdd

NetReplExportDirDel

NetReplExportDirEnum

NetReplExportDirGetInfo

NetReplExportDirLock

NetReplExportDirSetInfo

NetReplExportDirUnlock

NetReplGetInfo

NetReplImportDirAdd

NetReplImportDirDel

NetReplImportDirEnum

NetReplImportDirGetInfo

NetReplImportDirLock

NetReplImportDirUnlock

NetReplSetInfo

NetScheduleJobAdd

NetScheduleJobDel

NetScheduleJobEnum

NetScheduleJobGetInfo

NetServerDiskEnum

NetServerEnum

NetServerGetInfo

NetServerSetInfo

NetServerTransportAdd

NetServerTransportDel

NetServerTransportEnum

NetSessionDel

NetSessionEnum

NetSessionGetInfo

NetShareAdd

NetShareCheck

NetShareDel

NetShareGetInfo

NetShareSetInfo

NetStatisticsGet2

NetUserAdd

NetUserChangePassword

NetUserDel

NetUserEnum

NetUserGetGroups

NetUserGetInfo

NetUserGetLocalGroups

NetUserSetGroups

NetUserSetInfo

NetUserModalsGet

NetUserModalsSet

NetWkstaGetInfo

NetWkstaSetInfo

NetWkstaTransportAdd

NetWkstaTransportDel

NetWkstaTransportEnum

NetWkstaUserGetInfo

NetWkstaUserSetInfo

NetWkstaUserEnum

Distributed Component Object Model (DCOM)

DCOM functions are not currently supported on Windows 95 nor on Windows 95 OSR 2.9 DCOM for Windows 95 is targeted for release before the end of 1996. COM and DCOM are no longer proprietary to MS, but are managed by the independent ActiveX™ Consortium.

GDI

The following GDI functions are not supported on Windows 95 nor on Windows 95 OSR 2:

AngleArc

ArcTo

CancelDC

The CancelDC function is not supported on Windows 95 nor on Windows 95 OSR 2.

APIS redistributable with Windows 95

Imagehlp

Imagehlp API functions provide access to portable executable (PE) images. Imagehlp is a built-in component of the Windows NT version 4.0 operating system. Imagehlp is supported on Windows 95 by shipping Imagehlp.dll as a redistributable.10

OpenGL

OpenGL is a built-in component of Windows NT version 4.0 and Windows 95 OSR 2. OpenGL is supported on Windows 95 by shipping it as a redistributable.

Summary

This White Paper has discussed some of the API differences among the three Windows 32-bit operating systems. MS continues to publish additional information to help application developers take advantage of the latest functionality provided by the Windows family of operating systems. Updated information is made available through the MS Developer Network (MSDN) and on the Internet at https://www.MS.com.

Additional Resources

Related information can be found in the following resources:

  • General API descriptions and details on using individual functions are available in the Win32 Software Development Kit (Win32 SDK) available through MSDN.

  • Methods for implementing specific Windows NT functionality can be found in the MSWindows NT Resource Kit, version 4.0 (MS Press, 1996).

  • Articles dealing with current operating systems issues and changes can be found at https://www.MS.com/devonly.

Solutions to specific problems and code examples can be found in the MS Knowledge Base at https://www.MS.com/kb.For More Information

For the latest information on Windows NT Server, check out our World Wide Web site at https://www.MS.com/backoffice or the Windows NT Server Forum on the MS Network (GO WORD: MSNTS).

1 For more information on the API, see "Introduction to the Win32 Application Programming Interface" at https://www.MS.com/win32dev/apiext/intro32.htm.

2 For more information, see Programmer's Guide to Pen Services for MS Windows 95 (MS Press, 1995).

3 For more information, see "The FAT32 File System" in the Win95 Guide to Programming (SDK).

4 For more information, see the DirectX 2 book in the Win32 Software Development Kit (SDK).

5 For more information, see "ActiveMovie" in the Win95 Guide to Programming (SDK).

6 For more information, see the ActiveX SDK at https://www.MS.com/intdev/.

7 For more information, see "GetDiskFreeSpace" in the Win32 SDK.

8 For more information, see Knowledge Base article "Windows 95 Support for LAN Manager APIs" (PSS ID Number: 125700).

9 For information on DCOM implementation and how it differs from COM on Windows 95, see the white paper "DCOM Technical Overview."

10 For more information, see "Portable Executable File Manipulation" and other articles in the Win32 SDK by querying "Imagehlp."