2.2.4 METADATA_GETALL_RECORD
The METADATA_GETALL_RECORD structure defines an analogous structure to METADATA_RECORD but is used only to return data from a call to the R_GetAllData method. Data retrieval specifications are provided in R_GetAllData method parameters, not in this structure (as is the case with METADATA_RECORD). The R_GetAllData method returns the data from multiple entries as an array of METADATA_GETALL_RECORD structures.
-
typedef struct _METADATA_GETALL_RECORD{ DWORD dwMDIdentifier; DWORD dwMDAttributes; DWORD dwMDUserType; DWORD dwMDDataType; DWORD dwMDDataLen; DWORD dwMDDataOffset; DWORD dwMDDataTag; } METADATA_GETALL_RECORD, *PMETADATA_GETALL_RECORD;
dwMDIdentifier: An unsigned integer value that uniquely identifies the metabase entry.
dwMDAttributes: An unsigned integer value containing bit flags that specify how to set or get data from the metabase. This member MUST be set to a valid combination of the following values.
-
Value
Meaning
METADATA_INHERIT
0x00000001
In Get methods: Return the inheritable data.
In Set methods: The data can be inherited.
METADATA_INSERT_PATH
0x00000040
For a string data item.
In Get methods: Replace all occurrences of "<%INSERT_PATH%>" with the path of the data item relative to the handle.
In Set methods: Indicate that the string contains the Unicode character substring "<%INSERT_PATH%>".
METADATA_ISINHERITED
0x00000020
In Get methods: Mark the data items that were inherited.
In Set methods: Not valid.
METADATA_NO_ATTRIBUTES
0x00000000
In Get methods: Not applicable. Data is returned regardless of this flag setting.
In Set methods: The data does not have any attributes.
METADATA_PARTIAL_PATH
0x00000002
In Get methods: Return any inherited data even if the entire path is not present. This flag is valid only if METADATA_INHERIT is also set.
In Set methods: Not valid.
METADATA_SECURE
0x00000004
In Get methods: Not valid.
In Set methods: The server and client transport and store the data in a secure fashion, as specified in 3.1.4.1.1.
METADATA_VOLATILE
0x00000010
In Get methods: Not valid.
In Set methods: Do not save the data in long-term storage.
dwMDUserType: An unsigned integer value that specifies the user type of the data. The dwMDUserType member MUST be set to one of the following values.
-
Value
Meaning
ASP_MD_UT_APP
0x00000065
The entry contains information specific to ASP application configuration.
IIS_MD_UT_FILE
0x00000002
The entry contains information about a file, such as access permissions or logon methods.
IIS_MD_UT_SERVER
0x00000001
The entry contains information specific to the server, such as ports in use and IP addresses.
IIS_MD_UT_WAM
0x00000064
The entry contains information specific to web application management.
dwMDDataType: An integer value that identifies the type of data in the metabase entry. The dwMDDataType member MUST be set to one of the following values.
-
Value
Meaning
ALL_METADATA
0x00000000
Specifies all data, regardless of type.
BINARY_METADATA
0x00000003
Specifies binary data in any form.
DWORD_METADATA
0x00000001
Specifies all DWORD (unsigned 32-bit integer) data.
EXPANDSZ_METADATA
0x00000004
Specifies all data that consists of a string that includes the terminating null character, and which contains environment variables that are not expanded.
MULTISZ_METADATA
0x00000005
Specifies all data represented as an array of strings, where each string includes the terminating null character, and the array itself is terminated by two terminating null characters.
STRING_METADATA
0x00000002
Specifies all data consisting of an ASCII string that includes the terminating null character.
dwMDDataLen: An unsigned integer value that specifies the length, in bytes, of the data. If the data is a string, this value includes the ending null character. For lists of strings, this includes an additional terminating null character after the final string (double terminating null characters).
-
For example, the length of a string list containing two strings would be as follows.
-
(wcslen(stringA) + 1) * sizeof(WCHAR) + (wcslen(stringB) + 1) * sizeof(WCHAR) + 1 * sizeof(WCHAR)
-
-
In-process clients need to specify dwMDDataLen only when setting binary data in the metabase. Remote clients MUST specify dwMDDataLen for all data types.
dwMDDataOffset: If the data was returned by value, this member contains the byte offset of the data in the buffer specified by the pbMDBuffer parameter of the R_GetAllData method. All out-of-process executions will return data by value. The array of records, excluding the data, is returned in the first part of the buffer. The data associated with the records is returned in the buffer after the array of records, and dwMDDataOffset is the offset to the beginning of the data associated with each record in the array.
dwMDDataTag: A reserved member that is currently unused.