#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