The METADATA_RECORD structure contains information about a metabase entry. It is used as an input parameter by the SetData method and as an input/output parameter by methods that retrieve data from the metabase, such as GetData, EnumData, or GetAllData.
typedef struct _METADATA_RECORD {
DWORD dwMDIdentifier;
DWORD dwMDAttributes;
DWORD dwMDUserType;
DWORD dwMDDataType;
DWORD dwMDDataLen;
unsigned char *pbMDData;
DWORD dwMDDataTag;
} METADATA_RECORD;
Flag | Description |
METADATA_INHERIT | Set: The data can be inherited.
Get: Return inheritable data. |
METADATA_INSERT_PATH | For a string data item:
Set: Indicates the string contains MD_INSERT_PATH_STRINGW. Get: Replace MD_INSERT_PATH_STRINGW with the path of the data item relative to the handle. |
METADATA_ISINHERITED | Set: Not valid.
Get: Mark data items that were inherited. |
METADATA_NO_ATTRIBUTES | Set: The data does not have any attributes.
Get: Not applicable. Data is returned regardless of this flag setting. |
METADATA_PARTIAL_PATH | Set: Not valid.
Get: Return ERROR_SUCCESS and any inherited data even if the entire path is not present. This flag is only valid if METADATA_INHERIT is also set. |
METADATA_REFERENCE | Set: The data was retrieved by reference.
Get: Not valid. |
METADATA_SECURE | Set: Store and transport the data in a secure fashion.
Get: Not valid. |
METADATA_VOLATILE | Set: Do not save the data in long-term storage.
Get: Not valid. |
IIS currently uses the following user types:
User type | Description |
ASP_MD_UT_APP | The entry contains information specific to ASP application configuration. |
IIS_MD_UT_FILE | The entry contains information about a file, such as access permissions, or logon methods. |
IIS_MD_UT_SERVER | The entry contains information specific to the server, such as ports in use and IP addresses. |
IIS_MD_UT_WAM | The entry contains information specific to Web application management. |
Data type | Description |
ALL_METADATA | Set: Not valid
Get: Return data regardless of type. |
BINARY_METADATA | Binary data in any form. |
DWORD_METADATA | An unsigned 32-bit number. |
EXPANDSZ_METADATA | A null-terminated string that contains unexpanded environment variables, such as %PATH%. The environment variables are not expanded by the IIS Admin Base Object. |
MULTISZ_METADATA | An array of null-terminated strings, terminated by two null characters. |
STRING_METADATA | A null-terminated string. |
(wcslen(stringA) + 1) * sizeof(WCHAR) + (wcslen(stringB) + 1) * sizeof(WCHAR) + 1 * sizeof(WCHAR)
In-process clients need to specify dwMDDataLen only when setting binary and multisz values in the metabase. Remote applications must specify dwMDDataLen for all data types.