The MDAC 2.5 Stack and Windows File Protection

Author: Prash Shirolkar

Summary: This document provides in-depth information on the Microsoft Data Access Components (MDAC) 2.5 redistribution stack, as well as the effect of Windows File Protection on its files on a computer running Microsoft® Windows® 2000 or Microsoft Windows Millennium—including information about what you can do to restore a damaged installation on Windows 2000 or Windows Millennium. This document also provides a breakdown of the MDAC 2.5 redistribution stack into its individual components and then addresses the characteristics of each technology. (12 printed pages)

Note

Even though a breakdown of the MDAC stack is provided, an all or nothing policy with regards to MDAC 2.5 redistribution is strongly recommended. Please refer to the End User License Agreement (in Mdaceula.txt) for details about redistributing MDAC 2.5. Additionally, from here on, the MDAC 2.5 redistribution stack will be referred to as the MDAC 2.5 stack. Finally, Windows File Protection (WFP) was initially referred to as System File Protection (SFP), hence any reference to WFP implies SFP as well.

Contents

  • Introduction

  • Windows File Protection and MDAC 2.5

  • The MDAC 2.5 Stack and Its Components

  • ADO

  • ODBC

  • OLE DB

  • SQL Server

  • Oracle

  • Microsoft Jet

  • RDS

  • Visual FoxPro

  • References

Introduction

The MDAC 2.5 stack can be broadly categorized into the ActiveX Data Objects (ADO), OLE DB, Open Database Connectivity (ODBC), Remote Data Services (RDS), Microsoft Jet, and Microsoft Visual FoxPro® components. These components are highly dependent on one another. For example, ADO components are nonfunctional without the ODBC core, OLE DB core, and the back-end database's OLE DB provider or ODBC driver.

Windows File Protection and MDAC 2.5

A persistent issue in the history of the Windows operating systems is the ability of installation programs not affiliated with the operating system to overwrite shared system files. After such installations, the user often experiences unpredictable system performance, ranging from application errors to operating system crashes. This problem affects several types of files, most commonly dynamic-link libraries (DLLs) and executable files (EXEs), and is often referred to as "DLL Hell." (For more details, see The End of DLL Hell, listed in the References section.)

Windows 2000 has a new feature called Windows File Protection (WFP) that prevents the replacement, by installations other than operating system updates, of system files that ship with Windows 2000. By preventing the replacement of essential system files, file version mismatches can now be avoided.

What MDAC files are covered by WFP?

All the MDAC files protected by WFP are listed in the tables in the individual MDAC technology sections of this document. A "1" in the WFP column signifies it is protected by WFP, and a "0" indicates that it is not.

How can a damaged installation of the MDAC 2.5 files on Windows 2000 be repaired without reinstalling the operating system?

Windows 2000 ships with MDAC 2.5. WFP will protect many of the MDAC 2.5 DLLs from being changed. In the rare event that a MDAC 2.5 WFP DLL is corrupted, contact Microsoft Product Support Services for instructions. A corrupted non-WFP file can be overwritten by copying the correct file from the MDAC 2.5 stack.

The MDAC 2.5 Stack and Its Components

The remaining sections of this document delve into each of the MDAC technologies, and each section includes a table that provides the following information:

  • All file names contained in the given component

  • Whether each file is under Windows File Protection (0 = no, 1 = yes)

  • The component release version in which the file is found

  • A brief description of the file

  • The file's location

The location column abbreviations are explained in the following table.

Legend

Meaning

Example

\HELP

<Drive>:\<Windir>\help

C:\Winnt\help

\SYS

<Drive>:\<Windir>\<Systemdir>

C:\Winnt\System32

\OLEDB

<Drive>:\<programfiles>\<commonfiles>\System\ole db

C:\Program Files\Common Files\System\oledb

\ADO

<Drive>:\<programfiles>\<commonfiles>\System\Ado

C:\Program Files\Common Files\System\ado

\RDS

<Drive>:\<programfiles>\<commonfiles>\System\Msadc

C:\Program Files\Common Files\System\msadc

Additionally, some of the components provide their own HTML Help files in \HELP folder.

ADO

ADO is the flagship application programming interface (API) for Universal Data Access (UDA). ADO 2.5 provides new objects, the Record object and the Stream object, that can retrieve data from URLs through the Microsoft OLE DB Provider for Internet Publishing (MSDAIPP). Additionally, traditional ADO objects such as the Connection and Recordset objects, as well as the new ones, can bind directly to a URL and retrieve data. ADO 2.5 also provides support for semi-structured data (also referred to as ragged or nonrectangular data).

In MDAC 2.5, ADO includes the ADOX and ADO MD subcomponents. Apart from the ADO object model, the ADO core components include the resource and rowset helper libraries, as well as the ADO 2.0 and 2.1 type libraries. ADO MD, the high-level object model for exposing multidimensional data, is contained in one DLL (msadomd.dll), as is ADOX (msadox.dll). The ActiveX Data Objects 2.1 Type Library is a new addition MDAC 2.5.

The MDAC 2.5 ADO Stack

Component

File Name

WFP

x86 Version

Location

Description

ADO

adojavas.inc

0

\ADO

ADO JavaScript include file

ADO

adovbs.inc

0

\ADO

ADO VBScript include file

ADO

msader15.dll

1

2.50.4403.3

\ADO

ActiveX Data Objects resources

ADO

msado15.dll

1

2.50.4403.3

\ADO

ActiveX Data Objects

ADO

msado20.tlb

1

2.50.4403.3

\ADO

ActiveX Data Objects 2.0 Type Library

ADO

msado21.tlb

1

2.50.4403.3

\ADO

ActiveX Data Objects 2.1 Type Library

ADO

msador15.dll

1

2.50.4403.3

\ADO

ActiveX Data Objects

ADO

msadrh15.dll

1

2.50.4403.3

\ADO

ActiveX Data Objects rowset helper

ADOMD

msadomd.dll

1

2.50.4403.3

\ADO

ActiveX Data Objects (Multidimensional)

ADOX

msadox.dll

1

2.50.4403.3

\ADO

ActiveX Data Objects Extensions for Data Definition Language and Security (ADOX)

ODBC

ODBC is still a widely accepted API for database access. It is based on the Call-Level Interface (CLI) specifications from X/Open and ISO/IEC for database APIs and uses Structured Query Language (SQL) as its database access language. It provides the client a unified means, with the same source code, of accessing relational data from different database management systems.

In addition to the thunking DLLs, the ODBC components include the all-important ODBC Driver Manager, the Windows 2000 Component Services (or MTS, if you are using Microsoft Windows NT®) connection pooling manager, the driver manager trace DLL, and the ODBC cursor library. Other components include the ODBC resources file, the installer DLL, and the Driver Configuration program files.

The ODBC Administrator still forms an integral part of the ODBC core, and another file of note is the ODBC HTML Help file that is installed in the \WIN folder.

The MDAC 2.5 ODBC Stack

Component

File Name

WFP

Version

Location

Description

ODBC

ds16gt.dll

1

3.510.3711.0

\SYS

ODBC 16-bit Driver Setup Generic Thunking

ODBC

ds32gt.dll

1

3.520.4403.2

\SYS

ODBC Driver Setup Generic Thunking

ODBC

mtxdm.dll

0

1997.11.532.0

\SYS

MTS connection pooling—ODBC Driver Manager

ODBC

odbc16gt.dll

1

3.510.3711.0

\SYS

ODBC 16-bit Generic Thunking

ODBC

odbc32.dll

1

3.520.4403.2

\SYS

ODBC Driver Manager

ODBC

odbc32gt.dll

1

3.520.4403.2

\SYS

ODBC Driver Generic Thunking

ODBC

odbcad32.exe

1

3.520.4403.2

\SYS

ODBC Administrator

ODBC

odbcconf.dll

1

3.520.4403.2

\SYS

ODBC Driver Configuration Program

ODBC

odbcconf.exe

1

3.520.4403.2

\SYS

ODBC Driver Configuration Program

ODBC

odbcconf.rsp

0

\SYS

ODBC Driver Configuration file

ODBC

odbccp32.cpl

1

3.520.4403.2

\SYS

ODBC Control Panel

ODBC

odbccp32.dll

1

3.520.4403.2

\SYS

ODBC Installer

ODBC

odbccr32.dll

1

3.520.4403.2

\SYS

ODBC Cursor Library

ODBC

odbccu32.dll

1

3.520.4403.2

\SYS

ODBC Cursor Library

ODBC

odbcinst.chm

0

\HELP

ODBC HTML help

ODBC

odbcint.dll

1

3.520.4403.2

\SYS

ODBC Resources

ODBC

odbctrac.dll

1

3.520.4403.2

\SYS

ODBC Driver Manager Trace

OLE DB

OLE DB offers a set of COM interfaces that you can use to access both relational and nonrelational data. OLE DB 2.5 introduced a new set of interfaces designed to incorporate the semi-structured data model. This effectively added support for hierarchical data stores, nonrectangular result sets, and for binding directly to objects through URLs. Some examples of hierarchical stores are file stores and message stores, and examples of nonrectangular data include simple or complex documents, e-mails, and so forth. Support for this kind of access is provided through the OLE DB row and stream objects, direct binding, and scoped operation capability.

Except for the new interfaces, the objects that form the OLE DB core are generally the same. A prominent new addition, however, is the root binder object, which provides a mechanism to directly bind to URLs and retrieve nonrectangular data. Other new features include OLE DB 2.5 runtime routines and OLE DB JavaScript and VBScript include files.

The MDAC 2.5 OLE DB Stack

Component

File Name

WFP

Version

Location

Description

OLE DB

msdadc.dll

1

2.50.4403.0

\OLEDB

OLE DB Data Conversion Stub

OLE DB

msdaenum.dll

1

2.50.4403.0

\OLEDB

OLE DB Root Enumerator Stub

OLE DB

msdaer.dll

1

2.50.4403.0

\OLEDB

OLE DB Error Collection Stub

OLE DB

msdaosp.dll

1

2.50.4403.0

\OLEDB

OLE DB Simple Provider

OLE DB

msdaps.dll

1

2.50.4403.2

\OLEDB

OLE DB Interface Proxies/Stubs

OLE DB

msdart32.dll

1

2.50.4403.0

\SYS

OLE DB Runtime Routines

OLE DB

msdasc.chm

0

\HELP

OLE DB Service Components HTML Help file

OLE DB

msdasc.dll

1

2.50.4403.0

\OLEDB

OLE DB Service Components Stub

OLE DB

msdasql.dll

1

2.50.4403.0

\OLEDB

OLE DB Provider for ODBC Drivers

OLE DB

msdasqlr.dll

1

2.50.4403.0

\OLEDB

OLE DB Provider for ODBC Drivers Resources

OLE DB

msdatl2.dll

1

2.50.4403.0

\OLEDB

OLE DB Implementation Support Routines

OLE DB

msdatt.dll

1

2.50.4403.0

\OLEDB

OLE DB Temporary Table Services

OLE DB

msdaurl.dll

1

9.1.4403.0

\OLEDB

OLE DB Root Binder Stub

OLE DB

msxactps.dll

1

2.50.4403.0

\OLEDB

OLE DB Transaction Proxies/Stubs

OLE DB

oledb32.dll

1

2.50.4403.3

\OLEDB

OLE DB Core Services

OLE DB

oledb32r.dll

1

2.50.4403.2

\OLEDB

OLE DB Core Services Resources

OLE DB

oledb32x.dll

1

2.50.4403.0

\OLEDB

OLE DB Extensions

OLE DB

oledbjvs.inc

0

\OLEDB

OLE DB JavaScript include file

OLE DB

oledbvbs.inc

0

\OLEDB

OLE DB VBS include file

SQL Server

The list of SQL Server subcomponents has no changes from the MDAC 2.1 version. These subcomponents are associated with the SQL Server ODBC Driver and OLE DB Provider for SQL Server. Again, the breakdown here is based on products rather than dependencies. Therefore, the network libraries are listed under SQL Server OLE DB even though the SQL Server ODBC Driver is dependent on them. Other important subcomponents include the code page translators, the client-configuration utility, SQL enterprise components, and the SQL Server Catalog update.

The MDAC 2.5 SQL Server ODBC and OLE DB Stack

Component

File Name

WFP

Version

Location

Description

SQL Server ODBC

12520437.cpx

1

\SYS

SQL Server Codepage Translator

SQL Server ODBC

12520850.cpx

1

\SYS

SQL Server Codepage Translator

SQL Server ODBC

cliconf.hlp

0

\SYS

SQL Server Client Configuration Help file

SQL Server ODBC

cliconfg.DLL

0

1999.5.27.0

\SYS

Client Configuration Utility

SQL Server ODBC

cliconfg.exe

0

1999.5.27.0

\SYS

Client Configuration Utility

SQL Server ODBC

odbcbcp.dll

0

3.70.8.12

\SYS

BCP for ODBC

SQL Server ODBC

sqlsodbc.hlp

0

\SYS

SQL Server ODBC Help

SQL Server ODBC

sqlsrv32.dll

0

3.70.8.12

\SYS

SQL Server ODBC Driver

SQL Server ODBC

sqlstr.dll

0

1999.5.27.0

\SYS

Function DLL for SQL Enterprise Components

SQL Server ODBC

sqlwid.dll

0

1999.5.27.0

\SYS

Function DLL for SQL Enterprise Components

SQL Server ODBC

sqlwoa.dll

0

1999.5.27.0

\SYS

Function DLL for SQL Enterprise Components

SQL Server OLE DB

dbmsadsn.dll

0

1999.5.27.0

\SYS

Pipes Net DLL for SQL Clients

SQL Server OLE DB

dbmsrpcn.dll

0

1999.5.27.0

\SYS

RPC Net Library

SQL Server OLE DB

dbmsshrn.dll

0

1999.5.27.0

\SYS

RPC Net Library

SQL Server OLE DB

dbmssocn.dll

0

1999.5.27.0

\SYS

Net DLL for SQL Server

SQL Server OLE DB

dbmsspxn.dll

0

1999.5.27.0

\SYS

NWLINK SPX WINSOCK Net Library

SQL Server OLE DB

dbmsvinn.dll

0

1999.5.27.0

\SYS

VINES Net Library

SQL Server OLE DB

dbnmpntw.dll

0

1999.5.27.0

\SYS

Pipes Net DLL for SQL Clients

SQL Server OLE DB

instcat.sql

0

\SYS

SQL Server SP Catalog updater

SQL Server OLE DB

sqloledb.dll

0

7.1.8.14

\OLEDB

OLE DB Provider for SQL Server

SQL Server OLE DB

SQLSOLDB.hlp

0

\OLEDB

SQL Server OLE DB Help

Oracle

In MDAC 2.5, the Oracle components, including the Oracle Call Interface (OCI) DLL and the code page translator, are unchanged for the Oracle ODBC Driver and the OLE DB Provider for Oracle.

The MDAC 2.5 Oracle ODBC and OLE DB Stack

Component

File Name

WFP

Version

Location

Description

Oracle ODBC

mscpxl32.dll

1

3.60.3.20

\SYS

ODBC Code Page Translator

Oracle ODBC

msorcl32.chm

0

\HELP

Oracle ODBC Driver Help (Compiled HTML)

Oracle ODBC

msorcl32.dll

1

2.573.4403.0

\SYS

ODBC Driver for Oracle

Oracle ODBC/OLE DB

mtxoci.dll

0

1999.6.854.0

\SYS

MTS - Oracle OCI

Oracle OLE DB

msdaora.dll

1

2.50.4403.0

\OLEDB

OLE DB Provider for Oracle

Microsoft Jet

Microsoft Jet has 28 subcomponents in the MDAC 2.5 stack. Generally, the list is unchanged except for the HTML Help file. The Jet components include the Jet Engine with its numerous ISAMs, the Reconciler library, the Replication library, the Sort library, Expression Service binaries, the Jet ODBC Driver, the OLE DB Provider for Microsoft Jet, and the Microsoft Jet and Replication (JRO) objects.

The MDAC 2.5 Microsoft Jet Stack

Component

File Name

WFP

Version

Location

Description

Jet

expsrv.dll

1

6.0.0.8540

\SYS

VBA Runtime - Expression Service

Jet

msexch40.dll

1

4.0.2927.2

\SYS

Jet Exchange ISAM

Jet

msexcl40.dll

1

4.0.2927.2

\SYS

Jet Excel ISAM

Jet

msjet40.dll

1

4.0.2927.4

\SYS

Jet Engine Library

Jet

msjint40.dll

1

4.0.2927.2

\SYS

Jet Database Engine International DLL

Jet

msjter40.dll

1

4.0.2927.2

\SYS

Jet Database Engine Error DLL

Jet

msjtes40.dll

1

4.0.2927.6

\SYS

Jet Expression Service

Jet

msltus40.dll

1

4.0.2927.2

\SYS

Jet Lotus 1-2-3 ISAM

Jet

mspbde40.dll

1

4.0.2927.2

\SYS

Jet Paradox ISAM

Jet

msrd2x40.dll

1

4.0.2927.2

\SYS

(R) Red ISAM

Jet

msrd3x40.dll

1

4.0.2927.4

\SYS

(R) Red ISAM

Jet

msrecr40.dll

0

4.00.2927.2

\SYS

Reconciler Resource Library

Jet

msrepl40.dll

1

4.0.2927.2

\SYS

Replication Library

Jet

mstext40.dll

1

4.0.2927.6

\SYS

Jet Text ISAM

Jet

mswdat10.dll

1

4.0.2927.2

\SYS

Jet Sort Tables

Jet

mswstr10.dll

1

4.0.2927.2

\SYS

Jet Sort Library

Jet

msxbde40.dll

1

4.0.2927.2

\SYS

Jet xBASE ISAM

Jet

vbajet32.dll

1

6.0.1.8268

\SYS

VBA Development Environment - Expression Service Loader

Jet ODBC

odbcjet.chm

0

\HELP

Jet ODBC HTML Help

Jet ODBC

odbcji32.dll

1

4.0.4403.2

\SYS

ODBC Desktop Driver Pack 3.5

Jet ODBC

odbcjt32.dll

1

4.0.4403.2

\SYS

ODBC Desktop Driver Pack 3.5

Jet ODBC

oddbse32.dll

1

4.0.4403.2

\SYS

(3.0) driver for DBase

Jet ODBC

odexl32.dll

1

4.0.4403.2

\SYS

(3.0) driver for Excel

Jet ODBC

odfox32.dll

1

4.0.4403.2

\SYS

(3.0) driver for FoxPro

Jet ODBC

odpdx32.dll

1

4.0.4403.2

\SYS

(3.0) driver for Paradox

Jet ODBC

odtext32.dll

1

4.0.4403.2

\SYS

(3.0) driver for text files

Jet OLE DB

msjetoledb40.dll

1

4.0.2927.2

\SYS

OLE DB Provider for Jet

JRO

msjro.dll

1

2.50.4403.3

\ADO

Jet and Replication Objects

RDS

In MDAC 2.5, the list of RDS subcomponents is unchanged from MDAC 2.1. The stack includes the following components and associated resources: the RDSServer.DataFactory object and its handler, the RDS.DataControl object, the RDS ISAPI library, the Data Shaping Service for OLE DB, the OLE DB Persistence Provider, the OLE DB Remoting Provider, and the OLE DB Cursor Service for OLE DB.

The MDAC 2.5 RDS Stack

Component

File Name

WFP

Version

Location

Description

RDS

adcjavas.inc

0

\RDS

RDS JavaScript include file

RDS

adcvbs.inc

0

\RDS

RDS VBScript include file

RDS

HANDLER.reg

0

\RDS

REG file for setting up default RDS Handler

RDS

handsafe.reg

0

\RDS

REG file for making RDS always run with a safe handler

RDS

handunsf.reg

0

\RDS

REG file for making RDS not require a safe handler

RDS

msadce.dll

1

2.50.4403.0

\RDS

OLE DB Cursor Engine

RDS

msadcer.dll

1

2.50.4403.0

\RDS

OLE DB Cursor Engine Resources

RDS

msadcf.dll

1

2.50.4403.0

\RDS

Remote Data Services DataFactory

RDS

msadcfr.dll

1

2.50.4403.0

\RDS

Remote Data Services DataFactory Resources

RDS

msadco.dll

1

2.50.4403.0

\RDS

Remote Data Services DataControl

RDS

msadcor.dll

1

2.50.4403.0

\RDS

Remote Data Services DataControl Resources

RDS

msadcs.dll

1

2.50.4403.0

\RDS

Remote Data Services ISAPI Library

RDS

msadds.dll

1

2.50.4403.0

\RDS

OLE DB Data Shaping Service

RDS

msaddsr.dll

1

2.50.4403.0

\RDS

OLE DB Data Shaping Service Resources

RDS

msdaprsr.dll

1

2.50.4403.2

\RDS

OLE DB Persistence Provider Resources

RDS

msdaprst.dll

1

2.50.4403.2

\RDS

OLE DB Persistence Provider

RDS

msdarem.dll

1

2.50.4403.2

\RDS

OLE DB Remoting Provider

RDS

msdaremr.dll

1

2.50.4403.2

\RDS

OLE DB Remoting Provider Resources

RDS

msdatsrc.tlb

1

9.0.4403.0

\SYS

Data Source Interfaces

RDS

msdfmap.dll

1

2.50.4403.0

\RDS

DataFactory Handler

RDS

msdfmap.ini

0

\WIN

INI file for configuring default RDS Handler

Visual FoxPro

The Visual FoxPro components include the Visual FoxPro ODBC driver and its corresponding help file.

The MDAC 2.5 Visual FoxPro Stack

Component

File Name

WFP

Version

Location

Description

Visual FoxPro

drvvfp.chm

0

\HELP

Visual FoxPro ODBC Driver HTML Help

Visual FoxPro

vfpodbc.dll

1

6.1.8440.1

\SYS

Visual FoxPro ODBC Driver

References