SuperHACBStruct

A data structure, or message packet, that puts I/O requests into a protocol-specific command block (such as SCSI or IDE-ATA).

Used By:CDM

Syntax

    typedef struct SuperHACBStruct{
       BYTE     cdmSpace[32];
       struct   HACBStruct HACB;
    } SuperHACBDef;
    

Fields

cdmSpace
A 32-byte field to be used at the CDM's discretion. This field can be used to store state information specific to a CDM, but the use of this field is optional. However, if this field is used, the CDM is responsible for setting its values.
HACB
A field containing a HACB structure [see HACBStruct]. A SuperHACB structure pointer is what the Media Manager APIs pass to and from a CDM. The HAM receives and acts on only the information contained in the HACB structure.

Remarks

It provides additional space for CDM developers to attach additional CDM state information, and it encapsulates a Host Adapter Control Block [see HACB or HACBStruct] which is the structure passed between a Custom Device Module (CDM) and a Host Adapter Module (HAM) via the Media Manager.

The CDM uses a SuperHACB to build a device-specific I/O request from a CDM message [see CDMMessageStruct] it receives from the Media Manager.

As a data member of the SuperHACB, the CDM places device specific commands in the HACB and initiates its execution by sending it to the HAM via the Media Manager. The HAM passes the information in the HACB to the target device for processing.

Each HACB created with CDI_Allocate_HACB is enveloped in a SuperHACB data structure.