This structure contains all information in an AAMVA CDS subfile.
typedef struct _AAMVASUBFILE
{
L_UINT uStructSize;
L_AAMVA_SUBFILE_TYPE SubfileType;
L_CHAR SubfileTypeCode[2];
L_UINT Offset;
L_UINT Length;
AAMVADATAELEMENT* DataElements;
L_UINT JurisdictionSpecificDataElementCount;
L_UINT DataElementBufferSize;
} AAMVASUBFILE;
Size of AAMVASUBFILE structure, in bytes, for versioning. Use the sizeof operator to calculate this value.
The type of the subfile. For possible values, refer to L_AAMVA_SUBFILE_TYPE.
the subfile type code. This code will be in a form of two characters. For example:
The offset, in bytes, from the start of the input barcode data to the beginning of the subfile.
NOTE: Many issuing authorities encode this value incorrectly and are 1 byte off in either direction.
The length of the subfile in byte. Therefore, the end of the subfile should be at or around subfile.Offset + subfile.Length.
An array of all data elements associated to subfile. Each element defined in the AAMVA CDS has a fixed slot in this array. This array will be of length AAMVA_DEFINED_DATA_ELEMENTS_COUNT + JurisdictionSpecificDataElementCount.
The number of jurisdiction-specific data element contained in this subfile. These data elements will be appended to the end of the DataElements array.
Internal use only. Pass 0.
Subfiles can be of three types: Driver's License, ID Card, or Jurisdiction Specific.
Subfiles, according the AAMVA CDS, have mandatory and optional data elements. However, these guidelines are rarely abided by.