Get_Volume_Control_Data

This function returns a structure containing an array of volume control records. These records contain invariant information about each volume -- that is, information which will not change for as long as the volume exists.

This data includes the handle for each volume, which must be used on all access to that volume.


#include <lvm_intr.h>

Volume_Control_Array _System Get_Volume_Control_Data(

    CARDINAL32 * Error_Code   /* (O) Address where the error code will be stored */

);

Parameters

Error_Code
The address of a CARDINAL32 in which to store an error code should an error occur.

Returns

A Volume_Control_Array structure is returned.

If there are no errors, then the Volume_Control_Data field will be non-NULL, the Count field will be >= 0, and the value pointed to by Error_Code will be LVM_ENGINE_NO_ERROR (0).

If an error does occur, then the Volume_Control_Data field will be NULL, the Count field will be 0, and the value pointed to by Error_Code will be non-zero.

Errors

If an error occurs, then any memory allocated by this function will be freed, and the value pointed to by Error_Code will be greater than 0.

Side Effects

Memory for the returned array is allocated.

Notes

The caller becomes responsible for the memory allocated for the array of records pointed to by Volume_Control_Data field in the Volume_Control_Array structure returned by this function. The caller should free this memory using the Free_Engine_Memory function once it is no longer needed.

16-Bit Equivalent:

void _Far16 _Pascal _loadds GET_VOLUME_CONTROL_DATA16(
        Volume_Control_Record * _Seg16 * _Seg16 Volume_Control_Data,
        CARDINAL32 *                     _Seg16 Count,
        CARDINAL32 *                     _Seg16 Error_Code
);