An array is added by attaching a length greater than the size of the data type. For example, the SMB attaches byte data with a property that looks like:
// PROP_BYTE_DATA
{ 0,0,
"Byte parameters",
"Command specific byte parameters",
PROP_TYPE_BYTE,
PROP_QUAL_ARRAY,
NULL,
32,
fm_property_name },
And the attach looks like:
AttachPropertyInstance( fhandle,
property_table[PROP_BYTE_DATA].hProperty,
(WORD)(*bytecnt * sizeof(BYTE)),
bytecnt + 1,
cmd,
PL_COMMAND,
0);