Resource Structures
A resource structure is a user-defined structure for storing instance data. A resource structure resides in a Resource DLL. The following code illustrates a resource structure for use with 32-bit operating systems.
typedef struct _MYTYPE_RESOURCE
{
RESID resid;
MYTYPE_PROPS propsActive;
MYTYPE_PROPS props;
HCLUSTER hCluster;
HRESOURCE hResource;
SC_HANDLE hService;
DWORD dwServicePid;
HKEY hkeyParameters;
RESOURCE_HANDLE hResourceHandle;
LPWSTR pszResourceName;
CLUS_WORKER cwWorkerThread;
CLUSTER_RESOURCE_STATE state;
}
MYTYPE_RESOURCE, *PMYTYPE_RESOURCE;
-
resid
-
Stores the resource identifier (RESID) of the resource instance. The RESID is the address of the structure that is allocated for a resource instance.
-
propsActive
-
A parameter block that stores the most current in-memory values of the instance's private properties. If a resource is online, changes to its private properties are stored here until the resource can be taken offline and brought back online.
-
props
-
A parameter block that stores the most current cluster database values of the instance's private properties. These are the values under which the instance is currently operating.
-
hCluster
-
Stores a cluster handle.
-
hResource
-
Stores a resource handle.
-
hService
-
Handle to the service controlled by the resource.
-
dwServicePid
-
Stores the service process identifier of the service controlled by the resource.
-
hkeyParameters
-
Stores the name of the cluster database key under which the resource's private properties are stored.
-
hResourceHandle
-
Stores the Resource Monitor's handle to the instance, which is used to identify the instance in the LogEvent and SetResourceStatus callback functions.
-
pszResourceName
-
Stores the name of the resource.
-
cwWorkerThread
-
A CLUS_WORKER thread used to handle pending operations.
-
state
-
Stores the state of the resource. The value of this member is taken from the CLUSTER_RESOURCE_STATE enumeration. The possible values are as follows.
Value Meaning ClusterResourceStateUnknown The operation was not successful. For more information about the error, call the function GetLastError. ClusterResourceInherited The resource has been inherited. ClusterResourceInitializing The resource is performing initialization. ClusterResourceOnline The resource is operational and functioning normally. ClusterResourceOffline The resource is not operational. ClusterResourceFailed The resource has failed. ClusterResourcePending The resource is in the process of coming online or going offline. ClusterResourceOnlinePending The resource is in the process of coming online. ClusterResourceOfflinePending The resource is in the process of going offline.
For more information on instance management, see Implementing Instance Management.