VRP


#include <vrp.h>

typedef struct _VRP { 
    ULONG  VRP_demand_flags;      // demand flags; see below
    ULONG  VRP_event_flags;       // event flags; see below
    USHORT VRP_max_sgd;           // max # of scatter/gather descriptors
    USHORT VRP_max_req_size;      // max size of request packet
    ULONG  VRP_delta_to_ior;      // delta from IOP to IOR
    ULONG  VRP_block_size;        // block size of volume
    ULONG  VRP_fsd_hvol;          // FSD's volume handle
    ULONG  VRP_fsd_entry;         // file system request routine
    ULONG  VRP_device_handle;     // address of handle for device
    ULONG  VRP_partition_offset;  // partition bias for logical volumes 
    ULONG  VRP_next_vrp;          // link to next VRP
    ULONG  VRP_logical_handle;    // pointer to logical device handle
    ULONG  VRP_reserved;          // reserved; must be zero
} VRP, *PVRP;

VRP_demand_flags

Demand flags to identify the device requirements the FSD must satisfy. Can be a combination of these values:

VRP_dmd_small_memory

Data buffers must reside in the lower 16 Mb of memory.

VRP_dmd_word_align

Data buffers must be word aligned.

VRP_dmd_dword_align

Data buffers must be double word aligned.

VRP_dmd_phys_sgd

Scatter/gather descriptors must contain physical addresses. If this value is not given, descriptors contain linear addresses.

VRP_dmd_phys_sgd_ptr

Address to the first scatter/gather descriptor (IOR_sgd_lin_phys) must be a physical address. If this value is not given, the first address must be a linear address.

VRP_dmd_do_a_b_toggling

Enable toggling between floppy drives A and B. When this value is set for a single floppy drive system, the volume tracker the toggles between the A and B drives when accessed.

VRP_dmd_removable_supp

Device is removable.

VRP_dmd_lock_unlock_media

Media supports software locking.

VRP_dmd_load_eject_media

Media supports electronic eject.

VRP_dmd_clear_media_chg

Media supports command to clear media change.

VRP_dmd_no_xcl_required

Media allows absolute read/writes without an exclusive lock.

VRP_dmd_pageability

Indicates that access to this volume can cause paging.


VRP_event_flags

Event flags to identify special events. The FSD may ignore these flags provided that it still prevents data corruption. In such cases, the FSD is notified of the event on the next I/O request to the volume. Can be a combination of these values:

VRP_ef_media_changed

The media containing this volume indicated change since most recent I/O operation.

VRP_ef_media_uncertain

The media containing this volume may have been changed since the most recent i/o operation.

VRP_ef_prompting

The media containing this volume is currently being prompted for.

VRP_ef_input_share

The input stream of a character device is sharable.

VRP_ef_output_share

The output stream of a character device is sharable.

VRP_ef_user_canceled

The user has hit CANCEL on a request for reinserting this volume.

VRP_ef_write_protected

This volume is currently write protected.

VRP_ef_real_mode_mapped

This volume is currently accessed thriugh the real mode mapper.

VRP_ef_ios_locked

Device containing given volume is locked.


VRP_max_sgd

Maximum number of scatter/gather descriptors that may be built. The FSD should use the smaller of this value and 17.

See also IOP, IOR, IRS