ResUtilGetResourceDependencyByName function (resapi.h)
Enumerates the dependencies of a specified resource in a specified cluster and returns a handle to a dependency of a specified type. The PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_NAME type defines a pointer to this function.
Syntax
HRESOURCE ResUtilGetResourceDependencyByName(
[in] HCLUSTER hCluster,
[in] HANDLE hSelf,
[in] LPCWSTR lpszResourceType,
[in] BOOL bRecurse
);
Parameters
[in] hCluster
Handle to the cluster to which the resource belongs.
[in] hSelf
Handle to the dependent resource. This resource depends on one or more resources.
[in] lpszResourceType
NULL-terminated Unicode string specifying the resource type of the dependency to return.
[in] bRecurse
Determines the scope of the search. If TRUE, the function checks the entire dependency tree under the dependent resource. If FALSE, the function checks only the resources on which the dependent resource directly depends.
Return value
If the operation succeeds, the function returns a handle to one of the resources on which the resource specified by hSelf depends. The caller is responsible for closing the handle by calling CloseClusterResource.
If the operation fails, the function returns NULL. For more information, call the GetLastError function.
Return code | Description |
---|---|
|
|
|
The operation was not successful. For more information, call the function GetLastError. |
Remarks
The ResUtilGetResourceDependencyByName, ResUtilGetResourceDependency, and ResUtilGetResourceNameDependency functions are very similar in that they all provide access to dependencies of a particular resource type. The following list summarizes the differences between the functions.
Function | How the dependent resource is specified | Requires cluster handle |
---|---|---|
ResUtilGetResourceDependency | Resource handle | No |
ResUtilGetResourceDependencyByName | Resource handle | Yes |
ResUtilGetResourceNameDependency | Resource name | No |
Do not call ResUtilGetResourceDependencyByName from any resource DLL entry point function. ResUtilGetResourceDependencyByName can safely be called from a worker thread. For more information, see Function Calls to Avoid in Resource DLLs.
Examples
As the following example illustrates, if you know that resource A depends on a Physical Disk resource, you can use ResUtilGetResourceDependencyByName to obtain a handle to the dependency.
// 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.
Requirements
Requirement | Value |
---|---|
Minimum supported client | None supported |
Minimum supported server | Windows Server 2008 Enterprise, Windows Server 2008 Datacenter |
Target Platform | Windows |
Header | resapi.h |
Library | ResUtils.lib |
DLL | ResUtils.dll |
See also
ResUtilFindDependentDiskResourceDriveLetter
ResUtilGetResourceDependencyByClass