VAX/VMS Device Driver FDT Routines

Order Number: EY-2278E-MF

This document serves as an educational guide on Function Decision Table (FDT) routines for VAX/VMS device drivers. FDT routines are critical components called by EXE$QIO to validate input/output (I/O) request parameters (P1-P6). The guide highlights that driver code must be both position-independent (PIC)—as it's loaded dynamically into nonpaged system memory—and reentrant, capable of handling multiple, concurrent I/O requests without data corruption, by using the Unit Control Block (UCB) for all temporary storage.

FDT routines operate in kernel mode at Interrupt Priority Level (IPL) 2 within the process context. Their responsibilities include validating and storing parameters in the I/O Request Packet (IRP), managing data transfer between user and system buffers, and locking memory pages. The document details specific steps for implementing FDT routines for both buffered and direct I/O, including checking buffer accessibility, allocating buffers (potentially with I/O Request Packet Extensions or IRPEs), charging process quotas, and performing data movement. It also enumerates various exit methods from FDT routines, such as returning to the dispatcher, aborting requests, completing I/O operations, or queuing the IRP to different system components like the UCB or an alternate entry point. The document concludes by mentioning several system-supplied FDT routines that simplify common driver tasks like parameter handling, device mode setting, and buffer preparation for DMA.

EY-2278E-MF-0001
2000
Number of pages unknown
Quality

Original
5.4MB

Site structure and layout ©2025 Majenko Technologies