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. (NOTE: See DCB_dmd_preload flag, which corrects a DRP_FC_NEED_PRELOAD bug)
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