The IMSAdminBase::GetAllData method retrieves all data associated with a key in the metabase. This includes all values that the key inherits.
HRESULT GetAllData(
METADATA_HANDLE hMDHandle, //metabase handle.
LPCWSTR pszMDPath, //path to the key, relative to hMDHandle.
DWORD dwMDAttributes, //attributes of the data to retrieve.
DWORD dwMDUserType, //user type of the data to retrieve.
DWORD dwMDDataType, //data type of the data to retrieve.
DWORD *pdwMDNumDataEntries, //receives the number of entries copied to pbMDBuffer.
DWORD *pdwMDDataSetNumber, //receives the data set number.
DWORD dwMDBufferSize, //the size, in bytes, of pbMDBuffer.
Unsigned char *pbMDBuffer, //the buffer that receives the data.
DWORD *pdwMDRequiredBufferSize //if the method fails, receives the required buffer size.
);
The following user types are defined for IIS:
User type | Description |
ALL_METADATA | Return all data, regardless of user type. |
ASP_MD_UT_APP | The entry contains information specific to ASP application configuration. |
IIS_MD_UT_FILE | Return only data specific to a file, such as access permissions or logon methods. |
IIS_MD_UT_SERVER | Return only data 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 | Retrieve all 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%. |
MULTISZ_METADATA | An array of null-terminated strings, terminated by two null characters. |
STRING_METADATA | A null-terminated ASCII string. |
Returns an HRESULT that contains one of the following values:
Value | Description |
ERROR_ACCESS_DENIED | Access is denied. Either the open handle does not have read or write permission as needed, or the user does not have sufficient permissions to perform the operation. |
ERROR_INSUFFICIENT_BUFFER | The buffer passed into the method call is too small to receive the data. |
ERROR_INVALID_PARAMETER | The parameter is incorrect. |
ERROR_PATH_NOT_FOUND | The specified path was not found. |
ERROR_SUCCESS | The method succeeded. |
On non-Intel platforms the DWORD data is aligned; this may not be true on remote clients.
The handle, METADATA_MASTER_ROOT_HANDLE, provides no guarantee against multiple thread access. If your application requires a constant data state, use a handle returned by IMSAdminBase::OpenKey.