status.i4.v = dio_device_type_c(device_indices.i4a.r, properties.i2a.r,
					device_types.i4a.r, errors.i2a.r,

	This routine returns the device class and type for a device and
	property (DI/PI) or a list of devices/properties.  If a particular
	returned parameter is not desired, a value of NULL can be passed for
	that argument.

	device_indices	device index or array of device indices
	properties	property index or array of indices
			(If the first value is less than zero, all devices
			 will be requested with a property index which is
			 equal to the absolute value of this argument.)
			(constants are in 'dbprops')
	device_classes	returned device class or array of classes
			(constants are in 'diolib')
	device_types	returned type of device or array of types
			(constants are in 'device_types')
	errors		returned ACNET status value or array of status values
	num_devices	number of devices

	This function returns status values as follows:

	OK			success
	DIO_BADARG		invalid number of devices passed
	DIO_MEMFAIL		memory allocation failure
	negative value		ACNET format error indicating overall failure
	positive value		number of devices in error indicating partial

	This function requires the following include files:

	dbprops_h, diolib_h, device_types_h, acnet_errors_h

	Related functions:

	dio_dev_type, dio_ssdn_to_device_type_c, dio_dev_ssdn(_c),
	dio_device_location_c, error_in_list(_c)

	C/C++ usage:

	short	errors[NUM_DEVICES];
	short	properties = -PRREAD;
	int	status;
	static const int	device_indices[NUM_DEVICES] = {14430, 14431};
	int	device_classes[NUM_DEVICES];
	int	device_types[NUM_DEVICES];
	int	num_devices = NUM_DEVICES;

	status = dio_device_type_c(device_indices,&properties,