IRS


#include <irs.h>

typedef struct IRS_header { /* */
    UCHAR IRS_func;    // function; see below
    UCHAR IRS_result;  // result: zero if successful
} IRS, *PIRS;

Contains information about an I/O-related service.

IRS_func

Function code. Can be one of these values:

IRS_GET_VRP

Allocates a new VRP and sets it as the current VRP for the given device. Uses IRS_vrp_get structure. This function is typically used by a file system driver (FSD).

The VRP represents a volume on a given device. In the case of a removable device, such as a floppy diskette, a new VRP is created for every new diskette that is inserted in the drive. The VRP also maintains information on whether the media specified by the VRP is the current media in the drive. Each file system should check VRP_event_flags to check if the media is changed or uncertain, prior to relying on any cached data.Volume tracking uses the VRP to determine if the correct media is in the drive.

IRS_REPLACE_VRP

Used when mounting or verifying media to set the current VRP. Uses IRS_vrp_replace structure. This function is typically used by a file system driver (FSD).

If IRS_v_r_old_vrp and IRS_v_r_new_vrp are 0, the IOS clears the uncertain status on the current VRP for the drive specified in IRS_v_r_designtr, as long as the IRS_v_r_flags value is not set to IRS_V_R_DEF.

If IRS_v_r_old_vrp is nonzero and IRS_v_r_new_vrp is 0, the IOS deallocates the VRP pointed to by IRS_v_r_old_vrp and also notifies all IOS drivers of the destruction of the VRP by issuing a AEP_DESTROY_VRP function.

If IRS_v_r_old_vrp is nonzero and IRS_v_r_new_vrp is nonzero, the IOS deallocates the old VRP and sets the VRP specified by IRS_v_r_new_vrp as the current VRP. This should be used when a verify has indicated that the media in the drive is an existing volume.

If IRS_v_r_old_vrp is 0 and IRS_v_r_new_vrp is nonzero, the IOS is in the middle of mounting a new volume. The new VRP must be the VRP most recently made current for the given volume, using the IRS_GET_VRP call. In this case, the uncertain media status is cleared and an AEP_CREATE_VRP function is broadcast indicating the arrival of a new VRP in the system.

IRS_GET_DRVINFO

Returns information about the requested drive letter. Uses IRS_drv_get structure.

IRS_MEDIA_CHECK_RESET

Directs the IOS to issue an IOR_MEDIA_CHECK_RESET function to the device specified by the IRS_m_c_r_designtr member. This function checks if the media has changed since the last time the VRP was used and resets the status. Uses IRS_media_chk_reset structure.

IRS_SET_CUR_FLP_UNIT

If the floppy device for drive A supports A to B toggling, this function sets the current unit number for the device to A or B depending on the IRS_s_c_f_unit member. Uses IRS_cur_flp_unit_set structure.

IRS_REAL_MODE_HANDOFF

This is an internal IFSMGR call and should not be used. Directs the IOS to issue an AEP_REAL_MODE_HANDOFF function. This function indicates to device driver layers that this is the last opportunity to issue an INT 21h through MS-DOS. Uses IRS_rm_handoff structure.

IRS_QUERY_VOLUME_LOCK

Returns a bitmap of logical drives that are associated with a drive that is about to be locked. An example of this function is a drive with a compressed volume file on it. If drive D is a compression drive with drive C as the host, using this function on drive D returns a bit mask of 0h, indicating that no other drives will be changed. On the otherhand, using this function on drive C returns a bit mask of 4h indicating that drive D will also be locked. Uses IRS_query_vollock structure.

IRS_GET_LOGICAL_DRVS

Returns all logical drive letters associated with the given INT 13h unit. Uses IRS_get_logical_drives structure.

IRS_MOUNT_NOTIFY

Issues an AEP_MOUNT_NOTIFY function to all IOS device drivers to indicate that the given drive and VRP are being mounted. The device layers return a bitmap of all child volumes that are affected. For more information, see AEP_MOUNT_NOTIFY in the AEP structure. Uses IRS_mnt_notify structure.

IRS_FIRSTNXT_CHAR_DEV

Finds names for character device drivers controlled by the IOS. The IRS_g_f_n_hndl member should be set to 0 to find the first character driver; then all subsequent calls to find the next driver should use the IRS_g_f_n_hndl returned by the previous call. Uses IRS_frstnxt_char_dev structure.

IRS_IS_DRVCOMPRESSED

Given a logical drive number, this function attempts to determine if the drive is compressed. If it is compressed the flag IRS_I_D_C_COMP is set and the IRS_i_d_c_drive member indicates the host drive. In some cases, the IOS may not know that it is a compressed drive. Uses IRS_drv_comp structure.


IRS_result

Function result. It can be IRS_SUCCESS to indicates success or some other function-specific value.

See also IOS_Requestor_Service, AEP