HAMInfoStruct

Used by a HAM to supply information about the HAM itself to the Media Manager upon request.

Used By:HAM

Syntax

    struct HAMInfoStruct 
    { 
       LONG   deviceInfoStructureLength;
       WORD   haType;
       BYTE   busNo;
       BYTE   cardNo;
       LONG   novellAssignedModuleID;
       BYTE   name[64];
       LONG   supportedTargetIDs;
       LONG   supportedUnitNumbers;
       LONG   adapterTargetID;
       LONG   slotOption;
       LONG   flags;
       LONG   reserved[8];};
    

Fields

deviceInfoStructureLength
A 1-LONG field to contain the length of the device information data.

For SCSI devices, this value is the length of the header (32 bytes) plus the SCSI Inquiry Data (36 bytes). For IDE-ATA devices, this value is the length of the header (32 bytes) plus the IDE-ATA Information (512 bytes).

For custom HAMs (hacbType = 3), this value is the length of the header (32 bytes) plus the size of UpdateInfoStruct (at least 264 bytes).

For vendor-specific CDMs and HAMs, it is the length of the header (32 bytes) plus the length of the vendor-specific Information.

haType
A 1-WORD field to contain a value representing the adapter type this HAM supports. The following is a list of possible values:

Field Value

Description

1

HAM supports SCSI adapters.

2

HAM supports IDE-ATA adapters.

3

HAM can translate raw Media Manager messages into custom command blocks for the adapter it supports.

4

HAM supports SATA (Serial ATA) adapters.

busNo
A 1-byte field to contain the numerical identifier used by the HAM to indicate the appropriate bus on which to process a HACB.

This identifier accommodates those adapters that have more than one bus on which to attach devices.

This number is set by the HAM.

cardNo
A 1-byte field to contain the number that will be displayed for this adapter and used to identify the adapter in other commands.

This number is decided by the HAM.

novellAssignedModuleID
A 4-byte field to contain a number used to keep track of all modules.

This number is given to a driver vendor from Developer Services and should be hard-coded in the module.

This number is used in registering a module and in hot replacement.

name
A 64-byte field to contain the name of the adapter or the HAM.

The name is a string where byte 0 contains the string length and bytes 1 through 63 contain the characters that constitute the actual name.

supportedTargetIDs
A 1-LONG field to contain the maximum number supported by this HAM:

SCSI

SATA

IDE-ATA

maximum number of target IDs

maximum number of ports

maximum number of channels

default of 8

default of 4

default of 4

supportedUnitNumbers
A 1-LONG field to contain the maximum number supported by this HAM:

SCSI

SATA

maximum number of LUNs

maximum number of port multipliers

default of 8

default of 0

adapterTargetID
A 1-LONG field to contain the specific adapter target ID that this HAM will support, if known by the HAM.

If this parameter is not used or not known, it must be set to -1.

slotOption
A 1-LONG field to contain the slot (HIN) number. This is the same slot number found in parameter0 of the NPAOptionStruct when the slot option (0x0005) is selected in type.
flags

Value

Description

Description

0x00000001

Instance_Unload_Supported

 

0x00000002

Hardware_Hot_Pluggable

 

0x00000004

Reserved

 

0x00000008

Interrupt_Safe_Execute

If the HAM_Execute_HACB function has interrupts disabled at their critical paths, this bit can be set, which could provide performance improvement. Setting this bit is mandatory for MP-enabled HAMs.

If this bit is not set, interrupts are disabled by NWPA during the HAM_Execute_HACB function.

0x00000010

Real_Mode_Not_Supported

When set, this bit informs NWPA that the driver does not support transitions to Real Mode. Because the operating system switches to Real Mode when it attempts to unload the driver, setting this bit also prevents the driver from being unloaded.

0x00000020

Slot_Not_Registered

When set, this bit informs NWPA that the driver uses slot 0 as its HIN or does not register a slot value.

reserved
These 8 LONGs are reserved by NWPA.

Remarks

The HAM needs to maintain an instance of this structure for each bus it supports.