DRP


#include <drp.h>

typedef struct DRP { 
    CHAR   DRP_eyecatch_str[8];  // eye catcher string
    ULONG  DRP_LGN;              // load group number; see below
    PVOID  DRP_aer;              // addr of asynchronous event routine
    PVOID  DRP_ilb;              // address of ILB; see below
    CHAR   DRP_ascii_name[16];   // driver name; see below
    BYTE   DRP_revision;         // driver revision
    ULONG  DRP_feature_code;     // feature code; see below
    USHORT DRP_if_requirements;  // I/F requirements; see below
    UCHAR  DRP_bus_type;         // type of I/O bus; see below
    USHORT DRP_reg_result;       // registration result; see below
    ULONG  DRP_reference_data;   // data to pass with AEP_INITIALIZE
    UCHAR  DRP_reserved1[2];     // reserved
    ULONG  DRP_reserved2[1];     // reserved; must be zero
} DRP, *PDRP;

Contains driver registration packet information.

DRP_eyecatch_str

Eye catcher string. Must be "XXXXXXXX".

DRP_LGN

Load group mask for the driver. Can be a combination of these values:

DRP_IFS

Reserved for IFSMGR.

DRP_FSD

Installable file system layer.

DRP_FSD_EXT_1

FSD extension, for example, DBLSPACE.

DRP_FSD_EXT_2

FSD extension, for example, encryption.

DRP_VOLTRK

Post-volume tracking value added driver.

DRP_CLASS_DRV

Class driver.

DRP_TSD

Type specific driver (TSD).

DRP_VSD_1

Driver is in vendor enhancement layer 1.

DRP_VSD_2

Driver is in vendor enhancement layer 2.

DRP_VSD_3

Driver is in vendor enhancement layer 3.

DRP_SCSI_LAYER

SCSI'izer.

DRP_VSD_4

Driver is in vendor enhancement layer 4.

DRP_VSD_5

Driver is in vendor enhancement layer 5.

DRP_VSD_6

Driver is in vendor enhancement layer 6.

DRP_VSD_7

Driver is in vendor enhancement layer 7.

DRP_VSD_8

Driver is in vendor enhancement layer 8.

DRP_VSD_9

Driver is in vendor enhancement layer 9.

DRP_MISC_PD

Other port drivers.

DRP_NT_MPD

SCSI miniport drivers.

DRP_NT_PD

Windows NT, hardware-independent port driver.

DRP_ESDI_PD

ESDI port driver.

DRP_ESDIEMUL_PD

Port drivers for ESDI emulators.

DRP_ABIOS_PD

ABIOS port driver.

DRP_ABIOS_PREMPT_PD

ABIOS pre-empting port drivers.

DRP_NEC_FLOPPY

NEC floppy driver layer.

DRP_SOC_SER_DRV

Socket service drivers.

DRP_SOC_DRV

Socket drivers.

DRP_IOS_REG

Reserved for IOS registry.


All other values are reserved and must not be used.

DRP_ilb

Virtual address of the ILB structure that receives IOS linkage information.

DRP_ascii_name

16-byte string specifying the name of the driver.

DRP_feature_code

Feature code; must match the feature code in the DVT. Can be a combination of these values:

DRP_FC_SCAN_DOWN

BIOS scans targets from high to low.

DRP_FC_IO_FOR_INQ_AEP

Port driver needs to send I/O through IOP in response to an AEP_DEVICE_INQUIRY function. Results in AEP_CONFIG_DCB function for inquiry DCB.

DRP_FC_HALF_SEC

Notify driver every half second.

DRP_FC_1_SEC

Notify driver every second.

DRP_FC_2_SECS

Notify driver every two seconds.

DRP_FC_4_SECS

Notify driver every four seconds.

DRP_FC_DYNALOAD

Driver was dynamically loaded by IOS.

DRP_FC_NEED_PRELOAD

Driver needs to hook I/O even before the port driver. When set, the AEP_CONFIG_DCB function is received before the port driver.

DRP_FC_NEED_PRE_POST_LOAD

Same as DRP_FC_NEED_PRELOAD except the drive will receive 2 AEP_CONFIG_DCB function calls for each DCB: one call before the port driver, and another after layers before its load group have been initialized. Note that care must be taken not to insert twice into the same DCB.


DRP_if_requirements

I/F requirements. Can be one of these values:

DRP_IF_ISA

Driver supports ISA platforms.

DRP_IF_EISA

Driver supports EISA platforms.

DRP_IF_MCA

Driver supports MCA platforms.

DRP_IF_STD

Driver supports all standard platforms.


DRP_bus_type

Type of I/O bus if port driver. Can be one of these values:

DRP_BT_ESDI

ESDI or ESDI emulator.

DRP_BT_SCSI

SCSI or SCSI emulator.

DRP_BT_FLOPPY

NEC FLOPPY or FLOPPY emulator.

DRP_BT_SMART

Smart device.

DRP_BT_ABIOS

ABIOS or ABIOS emulator.


DRP_reg_result

Registration result. Can be one of these values:

DRP_REMAIN_RESIDENT

Driver should remain resident.

DRP_MINIMIZE

Driver should minimize.

DRP_ABORT

Driver should not load.

DRP_INVALID_LAYER

Bad layer number; abort driver.


DRP_reference_data

Data to pass with subsequent AEP_INITIALIZE functions.

See also IOS_Register, AEP