Функция ResUtilGetResourceDependencyByClass (resapi.h)
Перечисляет зависимости указанного ресурса в указанном кластере и возвращает дескриптор зависимости, которая соответствует указанному классу ресурсов. Тип PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_CLASS определяет указатель на эту функцию.
Синтаксис
HRESOURCE ResUtilGetResourceDependencyByClass(
[in] HCLUSTER hCluster,
[in] HANDLE hSelf,
[in] PCLUS_RESOURCE_CLASS_INFO prci,
[in] BOOL bRecurse
);
Параметры
[in] hCluster
Дескриптор для кластера, к которому принадлежит ресурс.
[in] hSelf
Дескриптор для зависимого ресурса. Этот ресурс зависит от одного или нескольких ресурсов.
[in] prci
Указатель на структуру CLUS_RESOURCE_CLASS_INFO , описывающую класс ресурсов возвращаемой зависимости.
[in] bRecurse
Определяет область поиска. Если задано значение TRUE, функция проверяет все дерево зависимостей в зависимом ресурсе. Если значение FALSE, функция проверяет только те ресурсы, от которых напрямую зависит зависимый ресурс.
Возвращаемое значение
Если операция выполнена успешно, функция возвращает дескриптор одному из ресурсов, от которых зависит ресурс, заданный параметром hSelf . Вызывающий объект отвечает за закрытие дескриптора путем вызова CloseClusterResource.
Если операция завершается сбоем, функция возвращает значение NULL. Для получения дополнительных сведений вызовите функцию GetLastError .
Комментарии
Не вызывайте ResUtilGetResourceDependencyByClass из любой функции точки входа dll ресурсов. ResUtilGetResourceDependencyByClass можно безопасно вызывать из рабочего потока. Дополнительные сведения см. в разделе Вызовы функций, которые следует избегать в библиотеках DLL ресурсов.
Примеры
Как показано в следующем примере, если вы знаете, что ресурс A зависит от ресурса класса хранения, можно использовать ResUtilGetResourceDependencyByClass , чтобы получить дескриптор ресурса класса хранения, не зная ничего о нем.
// 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 );
PCLUS_RESOURCE_CLASS_INFO pClassInfo;
pClassInfo->rc = CLUS_RESCLASS_STORAGE;
//
// Returns a handle to the storage class resource on which resource A depends.
// Can now perform a variety of operations on the dependency.
//
HRESOURCE hResD = ResUtilGetResourceDependencyByClass(
hCluster,
hResA,
pClassInfo,
TRUE );
// Close handles and free memory.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2008 Корпоративная, Windows Server 2008 Datacenter |
Целевая платформа | Windows |
Header | resapi.h |
Библиотека | ResUtils.lib |
DLL | ResUtils.dll |
См. также раздел
ResUtilFindDependentDiskResourceDriveLetter
ResUtilGetResourceDependencyByName