Microsoft Real-time Compression Interface

The Microsoft Real-time Compression Interface (MRCI) is a software interface that gives real-mode applications and device drivers success to compression services. The MRCI has been revised and enhanced for Windows 95. This section provides a summary of the revisions and enhancements.

32-bit Signature Values

A 32-bit MRCI client uses the sigOLD_EDX and sigNEW_EDX signature values to verify that an MRCI server has responded to the Detect MRCI Server (Interrupt 2Fh Function 04A12h) or Detect ROM BIOS MRCI Service (Interrupt 1Ah Function 0B001h) service. A 16-bit MRCI client uses the sigOLD_CX, sigNEW_CX, sigOLD_DX, and sigNEW_DX values.

Note that 32-bit MRCI clients must be virtual devices (VxDs). The Interrupt 2Fh interface is not directly callable from a Win32 application.

Server Capability Flags

Additional flag values have been added to indicate the new capabilities of an MRCI server. These value are returned in the mi_flCapability field of the MRCINFO structure as a result of calling the Detect MRCI Server or Detect ROM BIOS MRCI Server service. The values also double as operation codes that a client passes to the server entry point specified by the mi_pfnOperate field.

There are the following new flag values:

Value

Meaning

micapALTCOMP

Alternate compression

micapALTDECOMP

Alternate decompression

micapMRCI32

Server has a 32-bit interface

micapSPRCOMP

SuperCompress™ compression


MRCREQUEST Structure

The MRCREQUEST structure has been revised. The mr_Reserved field has changed to mr_offUpdate, which is used for Update compression (micap_UPDCOMP) and Update SuperCompress (micap_SPRCOMP) compression only. When sending a request to a server, the mr_offUpdate field specifies the offset in the source buffer where the changed uncompressed data starts. The server responds to the request by copying, into mr_offUpdate, the offset in the destination buffer where the changed compressed data starts.

Error Values

The MRCI server operation function, pointed to by the mi_pfnOperate field of the MRCINFO structure, can return the following new error values if the requested operation fails:

Value

Meaning

MRCI_ERROR_INVALID_SIZE

Invalid buffer size.

MRCI_ERROR_BUFFER_TOO_SMALL

Work buffer is too small.

MRCI_ERROR_RESTART

Incremental compression was interrupted and must be restarted from the beginning.

MRCI_ERROR_CONTINUE

Incremental compression in not finished but can be continued.