Each SANE device is represented by a structure of type SANE_Device. The C declaration of this type is given below.
typedef struct
{
SANE_String_Const name;
SANE_String_Const vendor;
SANE_String_Const model;
SANE_String_Const type;
}
SANE_Device;
The structure provides the unique name of the scanner in member
name. It is this unique name that should be passed in a call
to sane_open(). The format of this name is completely up to
the backend. The only constraints are that the name is unique among
all devices supported by the backend and that the name is a legal SANE
text string. To simplify presentation of unique names, their length
should not be excessive. It is recommended that backends keep
unique names below 32 characters in length. However, applications
must be able to cope with arbitrary length unique names.
The remaining members in the device structure provide additional information on the device corresponding to the unique name. Specifically, members vendor, model, and type are single-line strings that give information on the vendor (manufacturer), model, and the type of the device. For consistency's sake, the following strings should be used when appropriate (the lists will be expanded as need arises):