On Alpha and Integrity server systems, starts the Fast I/O operation. The $IO_PERFORM service completes asynchronously. For synchronous completion, use the Perform Fast I/O and Wait ($IO_PERFORMW) service. This service accepts 64-bit addresses. Format SYS$IO_PERFORM fandle ,chan ,iosadr ,bufadr ,buflen ,devdata C Prototype int sys$io_perform (unsigned __int64 fandl, unsigned short int chan, struct _iosa *iosadr, void *bufadr, unsigned __int64 buflen, unsigned __int64 devdata);
1 – Arguments
fandle OpenVMS usage:fandle type: 64-bit integer (unsigned) access: read only mechanism: by value A fandle returned by a previous call to $IO_SETUP. chan OpenVMS usage:channel type: word (unsigned) access: read mechanism: by value Software I/O channel number. iosadr OpenVMS usage:address type: address access: read only mechanism: by value Address of the I/O Status Area (IOSA). This value cannot be 0; that is, an IOSA is required. The iosadr must be aligned to a quadword boundary. bufadr OpenVMS usage:char_string type: address access: read only mechanism: by value The process buffer address. Must be aligned on a 512-byte boundary. buflen OpenVMS usage:byte count type: 64-bit integer access: read only mechanism: by value The byte count for the I/O. The buflen argument must be a multiple of 512 bytes. Drivers have further limitations on the maximum size of an I/O request. devdata OpenVMS usage:address type: pointer or integer access: read only mechanism: by value A hardware integer passed unchanged to the driver. For disk devices, this is the media address for the transfer; that is, the virtual block number (VBN) for virtual I/O functions or the logical block number (LBN) for logical I/O functions. This argument is ignored for tape devices. For drivers with complex parameters, devdata would be the address of a descriptor or buffer specific to the device and function and would be documented with the driver.