Функция ResUtilGetResourceDependencyByName (resapi.h)
Перечисляет зависимости указанного ресурса в указанном кластере и возвращает дескриптор зависимости указанного типа. Тип PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_NAME определяет указатель на эту функцию.
Синтаксис
HRESOURCE ResUtilGetResourceDependencyByName(
[in] HCLUSTER hCluster,
[in] HANDLE hSelf,
[in] LPCWSTR lpszResourceType,
[in] BOOL bRecurse
);
Параметры
[in] hCluster
Дескриптор для кластера, к которому принадлежит ресурс.
[in] hSelf
Дескриптор для зависимого ресурса. Этот ресурс зависит от одного или нескольких ресурсов.
[in] lpszResourceType
Строка Юникода с завершением NULL, указывающая тип ресурса возвращаемой зависимости.
[in] bRecurse
Определяет область поиска. Если задано значение TRUE, функция проверяет все дерево зависимостей в зависимом ресурсе. Если значение FALSE, функция проверяет только те ресурсы, от которых напрямую зависит зависимый ресурс.
Возвращаемое значение
Если операция выполнена успешно, функция возвращает дескриптор одному из ресурсов, от которых зависит ресурс, заданный параметром hSelf . Вызывающий объект отвечает за закрытие дескриптора путем вызова CloseClusterResource.
Если операция завершается сбоем, функция возвращает значение NULL. Для получения дополнительных сведений вызовите функцию GetLastError .
Код возврата | Описание |
---|---|
|
|
|
Операция не была успешной. Для получения дополнительных сведений вызовите функцию GetLastError. |
Комментарии
Функции ResUtilGetResourceDependencyByName, ResUtilGetResourceDependency и ResUtilGetResourceNameDependency очень похожи тем, что все они предоставляют доступ к зависимостям определенного типа ресурса. В следующем списке перечислены различия между функциями.
Функция | Указание зависимого ресурса | Требуется дескриптор кластера |
---|---|---|
ResUtilGetResourceDependency | Дескриптор ресурса | Нет |
ResUtilGetResourceDependencyByName | Дескриптор ресурса | Да |
ResUtilGetResourceNameDependency | Имя ресурса | Нет |
Не вызывайте ResUtilGetResourceDependencyByName из любой функции точки входа dll ресурсов. ResUtilGetResourceDependencyByName можно безопасно вызывать из рабочего потока. Дополнительные сведения см. в разделе Вызовы функций, которые следует избегать в библиотеках DLL ресурсов.
Примеры
Как показано в следующем примере, если известно, что ресурс A зависит от ресурса физического диска, можно использовать ResUtilGetResourceDependencyByName , чтобы получить дескриптор зависимости.
// String initialization and error checking omitted.
HCLUSTER hCluster = OpenCluster( lpszClusterName );
//
// Resource A depends on a storage class resource.
// Get a handle to that resource.
//
HRESOURCE hResA = OpenClusterResource( hCluster, lpszResName );
HRESOURCE hResD = ResUtilGetResourceDependencyByName(
hCluster,
hResA,
L"Physical Disk",
TRUE );
// Close handles and free memory.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2008 Корпоративная, Windows Server 2008 Datacenter |
Целевая платформа | Windows |
Header | resapi.h |
Библиотека | ResUtils.lib |
DLL | ResUtils.dll |
См. также раздел
ResUtilFindDependentDiskResourceDriveLetter
ResUtilGetResourceDependencyByClass