MDAC SDK Technical Articles
The MDAC 2.5 Stack and Windows File Protection
 

Prash Shirolkar

May 2000

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 Fox Pro
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.

LegendMeaningExample
\HELP<Drive>:\<Windir>\helpC:\Winnt\help
\SYS<Drive>:\<Windir>\<Systemdir>C:\Winnt\System32
\OLEDB<Drive>:\<programfiles>\<commonfiles>\System\ole dbC:\Program Files\Common Files\System\oledb
\ADO<Drive>:\<programfiles>\<commonfiles>\System\AdoC:\Program Files\Common Files\System\ado
\RDS<Drive>:\<programfiles>\<commonfiles>\System\MsadcC:\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

ComponentFile NameWFPx86 VersionLocationDescription
ADOadojavas.inc0 \ADOADO JavaScript include file
ADOadovbs.inc0 \ADOADO VBScript include file
ADOmsader15.dll12.50.4403.3\ADOActiveX Data Objects resources
ADOmsado15.dll12.50.4403.3\ADOActiveX Data Objects
ADOmsado20.tlb12.50.4403.3\ADOActiveX Data Objects 2.0 Type Library
ADOmsado21.tlb12.50.4403.3\ADOActiveX Data Objects 2.1 Type Library
ADOmsador15.dll12.50.4403.3\ADOActiveX Data Objects
ADOmsadrh15.dll12.50.4403.3\ADOActiveX Data Objects rowset helper
ADOMDmsadomd.dll12.50.4403.3\ADOActiveX Data Objects (Multidimensional)
ADOXmsadox.dll12.50.4403.3\ADOActiveX 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

ComponentFile NameWFPVersionLocationDescription
ODBCds16gt.dll13.510.3711.0\SYSODBC 16-bit Driver Setup Generic Thunking
ODBCds32gt.dll13.520.4403.2\SYSODBC Driver Setup Generic Thunking
ODBCmtxdm.dll01997.11.532.0\SYSMTS connection pooling—ODBC Driver Manager
ODBCodbc16gt.dll13.510.3711.0\SYSODBC 16-bit Generic Thunking
ODBCodbc32.dll13.520.4403.2\SYSODBC Driver Manager
ODBCodbc32gt.dll13.520.4403.2\SYSODBC Driver Generic Thunking
ODBCodbcad32.exe13.520.4403.2\SYSODBC Administrator
ODBCodbcconf.dll13.520.4403.2\SYSODBC Driver Configuration Program
ODBCodbcconf.exe13.520.4403.2\SYSODBC Driver Configuration Program
ODBCodbcconf.rsp0 \SYSODBC Driver Configuration file
ODBCodbccp32.cpl13.520.4403.2\SYSODBC Control Panel
ODBCodbccp32.dll13.520.4403.2\SYSODBC Installer
ODBCodbccr32.dll13.520.4403.2\SYSODBC Cursor Library
ODBCodbccu32.dll13.520.4403.2\SYSODBC Cursor Library
ODBCodbcinst.chm0 \HELPODBC HTML help
ODBCodbcint.dll13.520.4403.2\SYSODBC Resources
ODBCodbctrac.dll13.520.4403.2\SYSODBC 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

ComponentFile NameWFPVersionLocationDescription
OLE DBmsdadc.dll12.50.4403.0\OLEDBOLE DB Data Conversion Stub
OLE DBmsdaenum.dll12.50.4403.0\OLEDBOLE DB Root Enumerator Stub
OLE DBmsdaer.dll12.50.4403.0\OLEDBOLE DB Error Collection Stub
OLE DBmsdaosp.dll12.50.4403.0\OLEDBOLE DB Simple Provider
OLE DBmsdaps.dll12.50.4403.2\OLEDBOLE DB Interface Proxies/Stubs
OLE DBmsdart32.dll12.50.4403.0\SYSOLE DB Runtime Routines
OLE DBmsdasc.chm0 \HELPOLE DB Service Components HTML Help file
OLE DBmsdasc.dll12.50.4403.0\OLEDBOLE DB Service Components Stub
OLE DBmsdasql.dll12.50.4403.0\OLEDBOLE DB Provider for ODBC Drivers
OLE DBmsdasqlr.dll12.50.4403.0\OLEDBOLE DB Provider for ODBC Drivers Resources
OLE DBmsdatl2.dll12.50.4403.0\OLEDBOLE DB Implementation Support Routines
OLE DBmsdatt.dll12.50.4403.0\OLEDBOLE DB Temporary Table Services
OLE DBmsdaurl.dll19.1.4403.0\OLEDBOLE DB Root Binder Stub
OLE DBmsxactps.dll12.50.4403.0\OLEDBOLE DB Transaction Proxies/Stubs
OLE DBoledb32.dll12.50.4403.3\OLEDBOLE DB Core Services
OLE DBoledb32r.dll12.50.4403.2\OLEDBOLE DB Core Services Resources
OLE DBoledb32x.dll12.50.4403.0\OLEDBOLE DB Extensions
OLE DBoledbjvs.inc0 \OLEDBOLE DB JavaScript include file
OLE DBoledbvbs.inc0 \OLEDBOLE 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

ComponentFile NameWFPVersionLocationDescription
SQL Server ODBC12520437.cpx1 \SYSSQL Server Codepage Translator
SQL Server ODBC12520850.cpx1 \SYSSQL Server Codepage Translator
SQL Server ODBCcliconf.hlp0 \SYSSQL Server Client Configuration Help file
SQL Server ODBCcliconfg.DLL01999.5.27.0\SYSClient Configuration Utility
SQL Server ODBCcliconfg.exe01999.5.27.0\SYSClient Configuration Utility
SQL Server ODBCodbcbcp.dll03.70.8.12\SYSBCP for ODBC
SQL Server ODBCsqlsodbc.hlp0 \SYSSQL Server ODBC Help
SQL Server ODBCsqlsrv32.dll03.70.8.12\SYSSQL Server ODBC Driver
SQL Server ODBCsqlstr.dll01999.5.27.0\SYSFunction DLL for SQL Enterprise Components
SQL Server ODBCsqlwid.dll01999.5.27.0\SYSFunction DLL for SQL Enterprise Components
SQL Server ODBCsqlwoa.dll01999.5.27.0\SYSFunction DLL for SQL Enterprise Components
SQL Server OLE DBdbmsadsn.dll01999.5.27.0\SYSPipes Net DLL for SQL Clients
SQL Server OLE DBdbmsrpcn.dll01999.5.27.0\SYSRPC Net Library
SQL Server OLE DBdbmsshrn.dll01999.5.27.0\SYSRPC Net Library
SQL Server OLE DBdbmssocn.dll01999.5.27.0\SYSNet DLL for SQL Server
SQL Server OLE DBdbmsspxn.dll01999.5.27.0\SYSNWLINK SPX WINSOCK Net Library
SQL Server OLE DBdbmsvinn.dll01999.5.27.0\SYSVINES Net Library
SQL Server OLE DBdbnmpntw.dll01999.5.27.0\SYSPipes Net DLL for SQL Clients
SQL Server OLE DBinstcat.sql0 \SYSSQL Server SP Catalog updater
SQL Server OLE DBsqloledb.dll07.1.8.14\OLEDBOLE DB Provider for SQL Server
SQL Server OLE DBSQLSOLDB.hlp0 \OLEDBSQL 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

ComponentFile NameWFPVersionLocationDescription
Oracle ODBCmscpxl32.dll13.60.3.20\SYSODBC Code Page Translator
Oracle ODBCmsorcl32.chm0 \HELPOracle ODBC Driver Help (Compiled HTML)
Oracle ODBCmsorcl32.dll12.573.4403.0\SYSODBC Driver for Oracle
Oracle ODBC/OLE DBmtxoci.dll01999.6.854.0\SYSMTS - Oracle OCI
Oracle OLE DBmsdaora.dll12.50.4403.0\OLEDBOLE 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

ComponentFile NameWFPVersionLocationDescription
Jetexpsrv.dll16.0.0.8540\SYSVBA Runtime - Expression Service
Jetmsexch40.dll14.0.2927.2\SYSJet Exchange ISAM
Jetmsexcl40.dll14.0.2927.2\SYSJet Excel ISAM
Jetmsjet40.dll14.0.2927.4\SYSJet Engine Library
Jetmsjint40.dll14.0.2927.2\SYSJet Database Engine International DLL
Jetmsjter40.dll14.0.2927.2\SYSJet Database Engine Error DLL
Jetmsjtes40.dll14.0.2927.6\SYSJet Expression Service
Jetmsltus40.dll14.0.2927.2\SYSJet Lotus 1-2-3 ISAM
Jetmspbde40.dll14.0.2927.2\SYSJet Paradox ISAM
Jetmsrd2x40.dll14.0.2927.2\SYS(R) Red ISAM
Jetmsrd3x40.dll14.0.2927.4\SYS(R) Red ISAM
Jetmsrecr40.dll04.00.2927.2\SYSReconciler Resource Library
Jetmsrepl40.dll14.0.2927.2\SYSReplication Library
Jetmstext40.dll14.0.2927.6\SYSJet Text ISAM
Jetmswdat10.dll14.0.2927.2\SYSJet Sort Tables
Jetmswstr10.dll14.0.2927.2\SYSJet Sort Library
Jetmsxbde40.dll14.0.2927.2\SYSJet xBASE ISAM
Jetvbajet32.dll16.0.1.8268\SYSVBA Development Environment - Expression Service Loader
Jet ODBCodbcjet.chm0 \HELPJet ODBC HTML Help
Jet ODBCodbcji32.dll14.0.4403.2\SYSODBC Desktop Driver Pack 3.5
Jet ODBCodbcjt32.dll14.0.4403.2\SYSODBC Desktop Driver Pack 3.5
Jet ODBCoddbse32.dll14.0.4403.2\SYS(3.0) driver for DBase
Jet ODBCodexl32.dll14.0.4403.2\SYS(3.0) driver for Excel
Jet ODBCodfox32.dll14.0.4403.2\SYS(3.0) driver for FoxPro
Jet ODBCodpdx32.dll14.0.4403.2\SYS(3.0) driver for Paradox
Jet ODBCodtext32.dll14.0.4403.2\SYS(3.0) driver for text files
Jet OLE DBmsjetoledb40.dll14.0.2927.2\SYSOLE DB Provider for Jet
JROmsjro.dll12.50.4403.3\ADOJet 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

ComponentFile NameWFPVersionLocationDescription
RDSadcjavas.inc0 \RDSRDS JavaScript include file
RDSadcvbs.inc0 \RDSRDS VBScript include file
RDSHANDLER.reg0 \RDSREG file for setting up default RDS Handler
RDShandsafe.reg0 \RDSREG file for making RDS always run with a safe handler
RDShandunsf.reg0 \RDSREG file for making RDS not require a safe handler
RDSmsadce.dll12.50.4403.0\RDSOLE DB Cursor Engine
RDSmsadcer.dll12.50.4403.0\RDSOLE DB Cursor Engine Resources
RDSmsadcf.dll12.50.4403.0\RDSRemote Data Services DataFactory
RDSmsadcfr.dll12.50.4403.0\RDSRemote Data Services DataFactory Resources
RDSmsadco.dll12.50.4403.0\RDSRemote Data Services DataControl
RDSmsadcor.dll12.50.4403.0\RDSRemote Data Services DataControl Resources
RDSmsadcs.dll12.50.4403.0\RDSRemote Data Services ISAPI Library
RDSmsadds.dll12.50.4403.0\RDSOLE DB Data Shaping Service
RDSmsaddsr.dll12.50.4403.0\RDSOLE DB Data Shaping Service Resources
RDSmsdaprsr.dll12.50.4403.2\RDSOLE DB Persistence Provider Resources
RDSmsdaprst.dll12.50.4403.2\RDSOLE DB Persistence Provider
RDSmsdarem.dll12.50.4403.2\RDSOLE DB Remoting Provider
RDSmsdaremr.dll12.50.4403.2\RDSOLE DB Remoting Provider Resources
RDSmsdatsrc.tlb19.0.4403.0\SYSData Source Interfaces
RDSmsdfmap.dll12.50.4403.0\RDSDataFactory Handler
RDSmsdfmap.ini0 \WININI 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

ComponentFile NameWFPVersionLocationDescription
Visual FoxProdrvvfp.chm0 \HELPVisual FoxPro ODBC Driver HTML Help
 Visual FoxProvfpodbc.dll16.1.8440.1\SYSVisual FoxPro ODBC Driver

References

Redistributing Microsoft Data Access

Universal Data Access Web Page

OLE DB Programmer's Reference

The End of DLL Hell

MSDN Online Help - Microsoft Data Access Components

Page view tracker