home *** CD-ROM | disk | FTP | other *** search
- #pragma option push -b -a8 -pc -A- /*P_O_Push*/
- /*++
-
- Copyright (c) 1995-1999 Microsoft Corporation
-
- Module Name:
-
- resapi.h
-
- Abstract:
-
- This module defines the interface exported by Windows Clusters resources.
-
- Revision History:
-
- --*/
-
- #ifndef _RESAPI_DEFINES_
- #define _RESAPI_DEFINES_
-
- #if _MSC_VER > 1000
- #pragma once
- #endif
-
- #include <windows.h>
- #include <winsvc.h>
- #include <clusapi.h>
- #include <stdio.h>
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #define IN
- #define OUT
-
- //
- // Definitions for entrypoints exported by a resource DLL.
- //
- #define STARTUP_ROUTINE "Startup"
-
- #define CLRES_V1_FUNCTION_SIZE sizeof(CLRES_V1_FUNCTIONS)
- #define CLRES_VERSION_V1_00 0x100
-
- #define CLRES_V1_FUNCTION_TABLE( _Name, \
- _Version, \
- _Prefix, \
- _Arbitrate, \
- _Release, \
- _ResControl, \
- _ResTypeControl \
- ) \
- CLRES_FUNCTION_TABLE _Name = { CLRES_V1_FUNCTION_SIZE, \
- _Version, \
- _Prefix##Open, \
- _Prefix##Close, \
- _Prefix##Online, \
- _Prefix##Offline, \
- _Prefix##Terminate, \
- _Prefix##LooksAlive, \
- _Prefix##IsAlive, \
- _Arbitrate, \
- _Release, \
- _ResControl, \
- _ResTypeControl }
-
- #endif // ifndef _RESAPI_DEFINES_
-
- #ifndef _RESAPI_
- #define _RESAPI_
-
- //
- // Define a RESID
- //
-
- typedef PVOID RESID;
-
- //
- // Define a RESOURCE_HANDLE
- //
-
- typedef HANDLE RESOURCE_HANDLE;
-
- //
- // Define the Resource Status structure.
- //
-
- typedef struct RESOURCE_STATUS {
- CLUSTER_RESOURCE_STATE ResourceState;
- DWORD CheckPoint;
- DWORD WaitHint;
- HANDLE EventHandle;
- } RESOURCE_STATUS, *PRESOURCE_STATUS;
-
-
- #define ResUtilInitializeResourceStatus( _resource_status_ ) \
- ZeroMemory( _resource_status_, sizeof(RESOURCE_STATUS) )
-
- //
- // Define Resource DLL callback method for updating the state of a resource.
- //
-
- typedef
- DWORD
- (_stdcall *PSET_RESOURCE_STATUS_ROUTINE) (
- IN RESOURCE_HANDLE ResourceHandle,
- IN PRESOURCE_STATUS ResourceStatus
- );
-
- //
- // Define Resource DLL callback method for notifying that a quorum
- // resource DLL failed to hold the quorum resource.
- //
- typedef
- VOID
- (_stdcall *PQUORUM_RESOURCE_LOST) (
- IN RESOURCE_HANDLE Resource
- );
-
- //
- // Define Resource DLL callback method for logging events.
- //
- typedef enum LOG_LEVEL {
- LOG_INFORMATION,
- LOG_WARNING,
- LOG_ERROR,
- LOG_SEVERE
- } LOG_LEVEL, *PLOG_LEVEL;
-
- typedef
- VOID
- (_stdcall *PLOG_EVENT_ROUTINE) (
- IN RESOURCE_HANDLE ResourceHandle,
- IN LOG_LEVEL LogLevel,
- IN LPCWSTR FormatString,
- ...
- );
-
- typedef
- RESID
- (_stdcall *POPEN_ROUTINE) (
- IN LPCWSTR ResourceName,
- IN HKEY ResourceKey,
- IN RESOURCE_HANDLE ResourceHandle
- );
-
- typedef
- VOID
- (_stdcall *PCLOSE_ROUTINE) (
- IN RESID Resource
- );
-
- typedef
- DWORD
- (_stdcall *PONLINE_ROUTINE) (
- IN RESID Resource,
- IN OUT LPHANDLE EventHandle
- );
-
- typedef
- DWORD
- (_stdcall *POFFLINE_ROUTINE) (
- IN RESID Resource
- );
-
- typedef
- VOID
- (_stdcall *PTERMINATE_ROUTINE) (
- IN RESID Resource
- );
-
- typedef
- BOOL
- (_stdcall *PIS_ALIVE_ROUTINE) (
- IN RESID Resource
- );
-
- typedef
- BOOL
- (_stdcall *PLOOKS_ALIVE_ROUTINE) (
- IN RESID Resource
- );
-
- typedef
- DWORD
- (_stdcall *PARBITRATE_ROUTINE) (
- IN RESID Resource,
- IN PQUORUM_RESOURCE_LOST LostQuorumResource
- );
-
- typedef
- DWORD
- (_stdcall *PRELEASE_ROUTINE) (
- IN RESID Resource
- );
-
- typedef
- DWORD
- (_stdcall *PRESOURCE_CONTROL_ROUTINE) (
- IN RESID Resource,
- IN DWORD ControlCode,
- IN PVOID InBuffer,
- IN DWORD InBufferSize,
- OUT PVOID OutBuffer,
- IN DWORD OutBufferSize,
- OUT LPDWORD BytesReturned
- );
-
- typedef
- DWORD
- (_stdcall *PRESOURCE_TYPE_CONTROL_ROUTINE) (
- IN LPCWSTR ResourceTypeName,
- IN DWORD ControlCode,
- IN PVOID InBuffer,
- IN DWORD InBufferSize,
- OUT PVOID OutBuffer,
- IN DWORD OutBufferSize,
- OUT LPDWORD BytesReturned
- );
-
- typedef enum _RESOURCE_EXIT_STATE {
- ResourceExitStateContinue,
- ResourceExitStateTerminate,
- ResourceExitStateMax
- } RESOURCE_EXIT_STATE;
-
-
- //***************************************************************
- //
- // Define the Function Table Format
- //
- //***************************************************************
-
- //
- // Version 1 Resource DLL Interface definition
- //
- typedef struct CLRES_V1_FUNCTIONS {
- POPEN_ROUTINE Open;
- PCLOSE_ROUTINE Close;
- PONLINE_ROUTINE Online;
- POFFLINE_ROUTINE Offline;
- PTERMINATE_ROUTINE Terminate;
- PLOOKS_ALIVE_ROUTINE LooksAlive;
- PIS_ALIVE_ROUTINE IsAlive;
- PARBITRATE_ROUTINE Arbitrate;
- PRELEASE_ROUTINE Release;
- PRESOURCE_CONTROL_ROUTINE ResourceControl;
- PRESOURCE_TYPE_CONTROL_ROUTINE ResourceTypeControl;
- } CLRES_V1_FUNCTIONS, *PCLRES_V1_FUNCTIONS;
-
- //
- // Resource DLL Function Table definition
- //
- #if _MSC_VER >= 1200
- #pragma warning(push)
- #endif
- #pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
- typedef struct CLRES_FUNCTION_TABLE {
- DWORD TableSize;
- DWORD Version;
- union {
- CLRES_V1_FUNCTIONS V1Functions;
- };
- } CLRES_FUNCTION_TABLE, *PCLRES_FUNCTION_TABLE;
- #if _MSC_VER >= 1200
- #pragma warning(pop)
- #else
- #pragma warning( default : 4201 ) // nonstandard extension used : nameless struct/union
- #endif
-
- //
- // Define the Resource DLL Startup routine. This is the only routine
- // that should be exported from a resource DLL.
- //
-
- //
- // Calculate the byte offset of a field in a structure of type type.
- //
-
- #ifndef FIELD_OFFSET
- #define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field))
- #endif
-
- //
- // Property list structures and functions
- //
- typedef struct RESUTIL_PROPERTY_ITEM {
- LPWSTR Name; // Property name
- LPWSTR KeyName; // Name of value in cluster database
- DWORD Format; // Format: REG_SZ, REG_DWORD, etc.
- union {
- DWORD_PTR DefaultPtr;
- DWORD Default; // Default value
- LPVOID lpDefault;
- };
- DWORD Minimum; // Minimum value
- DWORD Maximum; // Maximum value
- DWORD Flags; // Flags for this item
- #define RESUTIL_PROPITEM_READ_ONLY 0x00000001 // Property is read-only
- #define RESUTIL_PROPITEM_REQUIRED 0x00000002 // Property is required
- #define RESUTIL_PROPITEM_SIGNED 0x00000004 // Numeric property is signed (defaults to unsigned)
-
- DWORD Offset; // Byte offset to value in parameter block
- // Assumes MULTI_SZ and BINARY parameters
- // are LPWSTRs followed by DWORDs for length
- } RESUTIL_PROPERTY_ITEM, *PRESUTIL_PROPERTY_ITEM;
-
-
- typedef
- DWORD
- (_stdcall *PSTARTUP_ROUTINE) (
- IN LPCWSTR ResourceType,
- IN DWORD MinVersionSupported,
- IN DWORD MaxVersionSupported,
- IN PSET_RESOURCE_STATUS_ROUTINE SetResourceStatus,
- IN PLOG_EVENT_ROUTINE LogEvent,
- OUT PCLRES_FUNCTION_TABLE *FunctionTable
- );
-
- //
- // Define layout of shared memory used for tracking Resource Monitor state.
- //
- typedef enum RESOURCE_MONITOR_STATE {
- RmonInitializing,
- RmonIdle,
- RmonStartingResource,
- RmonInitializingResource,
- RmonOnlineResource,
- RmonOfflineResource,
- RmonShutdownResource,
- RmonDeletingResource,
- RmonIsAlivePoll,
- RmonLooksAlivePoll,
- RmonArbitrateResource,
- RmonReleaseResource,
- RmonResourceControl,
- RmonResourceTypeControl
- } RESOURCE_MONITOR_STATE;
-
- typedef struct MONITOR_STATE {
- LARGE_INTEGER LastUpdate;
- RESOURCE_MONITOR_STATE State;
- HANDLE ActiveResource;
- BOOL ResmonStop;
- } MONITOR_STATE, *PMONITOR_STATE;
-
-
- //
- // Resource Utility Routines
- //
-
- DWORD
- WINAPI
- ResUtilStartResourceService(
- IN LPCWSTR pszServiceName,
- OUT LPSC_HANDLE phServiceHandle
- );
-
- DWORD
- WINAPI
- ResUtilVerifyResourceService(
- IN LPCWSTR pszServiceName
- );
-
- DWORD
- WINAPI
- ResUtilStopResourceService(
- IN LPCWSTR pszServiceName
- );
-
- DWORD
- WINAPI
- ResUtilVerifyService(
- IN SC_HANDLE hServiceHandle
- );
-
- DWORD
- WINAPI
- ResUtilStopService(
- IN SC_HANDLE hServiceHandle
- );
-
- DWORD
- WINAPI
- ResUtilCreateDirectoryTree(
- IN LPCWSTR pszPath
- );
-
- BOOL
- WINAPI
- ResUtilIsPathValid(
- IN LPCWSTR pszPath
- );
-
- DWORD
- WINAPI
- ResUtilEnumProperties(
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- OUT LPWSTR pszOutProperties,
- IN DWORD cbOutPropertiesSize,
- OUT LPDWORD pcbBytesReturned,
- OUT LPDWORD pcbRequired
- );
-
- DWORD
- WINAPI
- ResUtilEnumPrivateProperties(
- IN HKEY hkeyClusterKey,
- OUT LPWSTR pszOutProperties,
- IN DWORD cbOutPropertiesSize,
- OUT LPDWORD pcbBytesReturned,
- OUT LPDWORD pcbRequired
- );
-
- DWORD
- WINAPI
- ResUtilGetProperties(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- OUT PVOID pOutPropertyList,
- IN DWORD cbOutPropertyListSize,
- OUT LPDWORD pcbBytesReturned,
- OUT LPDWORD pcbRequired
- );
-
- DWORD
- WINAPI
- ResUtilGetAllProperties(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- OUT PVOID pOutPropertyList,
- IN DWORD cbOutPropertyListSize,
- OUT LPDWORD pcbBytesReturned,
- OUT LPDWORD pcbRequired
- );
-
- DWORD
- WINAPI
- ResUtilGetPrivateProperties(
- IN HKEY hkeyClusterKey,
- OUT PVOID pOutPropertyList,
- IN DWORD cbOutPropertyListSize,
- OUT LPDWORD pcbBytesReturned,
- OUT LPDWORD pcbRequired
- );
-
- DWORD
- WINAPI
- ResUtilGetPropertySize(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTableItem,
- IN OUT LPDWORD pcbOutPropertyListSize,
- IN OUT LPDWORD pnPropertyCount
- );
-
- DWORD
- WINAPI
- ResUtilGetProperty(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTableItem,
- OUT PVOID * pOutPropertyItem,
- IN OUT LPDWORD pcbOutPropertyItemSize
- );
-
- DWORD
- WINAPI
- ResUtilVerifyPropertyTable(
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- IN PVOID Reserved,
- IN BOOL bAllowUnknownProperties,
- IN const PVOID pInPropertyList,
- IN DWORD cbInPropertyListSize,
- OUT OPTIONAL LPBYTE pOutParams
- );
-
- DWORD
- WINAPI
- ResUtilSetPropertyTable(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- IN PVOID Reserved,
- IN BOOL bAllowUnknownProperties,
- IN const PVOID pInPropertyList,
- IN DWORD cbInPropertyListSize,
- OUT OPTIONAL LPBYTE pOutParams
- );
-
- DWORD
- WINAPI
- ResUtilSetPropertyTableEx(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- IN PVOID Reserved,
- IN BOOL bAllowUnknownProperties,
- IN const PVOID pInPropertyList,
- IN DWORD cbInPropertyListSize,
- IN BOOL bForceWrite,
- OUT OPTIONAL LPBYTE pOutParams
- );
-
- DWORD
- WINAPI
- ResUtilSetPropertyParameterBlock(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- IN PVOID Reserved,
- IN const LPBYTE pInParams,
- IN const PVOID pInPropertyList,
- IN DWORD cbInPropertyListSize,
- OUT OPTIONAL LPBYTE pOutParams
- );
-
- DWORD
- WINAPI
- ResUtilSetPropertyParameterBlockEx(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- IN PVOID Reserved,
- IN const LPBYTE pInParams,
- IN const PVOID pInPropertyList,
- IN DWORD cbInPropertyListSize,
- IN BOOL bForceWrite,
- OUT OPTIONAL LPBYTE pOutParams
- );
-
- DWORD
- WINAPI
- ResUtilSetUnknownProperties(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- IN const PVOID pInPropertyList,
- IN DWORD cbInPropertyListSize
- );
-
- DWORD
- WINAPI
- ResUtilGetPropertiesToParameterBlock(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- OUT LPBYTE pOutParams,
- IN BOOL bCheckForRequiredProperties,
- OUT OPTIONAL LPWSTR * pszNameOfPropInError
- );
-
- DWORD
- WINAPI
- ResUtilPropertyListFromParameterBlock(
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- OUT PVOID pOutPropertyList,
- IN OUT LPDWORD pcbOutPropertyListSize,
- IN const LPBYTE pInParams,
- OUT LPDWORD pcbBytesReturned,
- OUT LPDWORD pcbRequired
- );
-
- DWORD
- WINAPI
- ResUtilDupParameterBlock(
- OUT LPBYTE pOutParams,
- IN const LPBYTE pInParams,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable
- );
-
- void
- WINAPI
- ResUtilFreeParameterBlock(
- IN OUT LPBYTE pOutParams,
- IN const LPBYTE pInParams,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable
- );
-
- DWORD
- WINAPI
- ResUtilAddUnknownProperties(
- IN HKEY hkeyClusterKey,
- IN const PRESUTIL_PROPERTY_ITEM pPropertyTable,
- IN OUT PVOID pOutPropertyList,
- IN DWORD pcbOutPropertyListSize,
- IN OUT LPDWORD pcbBytesReturned,
- IN OUT LPDWORD pcbRequired
- );
-
- DWORD
- WINAPI
- ResUtilSetPrivatePropertyList(
- IN HKEY hkeyClusterKey,
- IN const PVOID pInPropertyList,
- IN DWORD cbInPropertyListSize
- );
-
- DWORD
- WINAPI
- ResUtilVerifyPrivatePropertyList(
- IN const PVOID pInPropertyList,
- IN DWORD cbInPropertyListSize
- );
-
- PWSTR
- WINAPI
- ResUtilDupString(
- IN LPCWSTR pszInString
- );
-
- DWORD
- WINAPI
- ResUtilGetBinaryValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName,
- OUT LPBYTE * ppbOutValue,
- OUT DWORD * pcbOutValueSize
- );
-
- LPWSTR
- WINAPI
- ResUtilGetSzValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName
- );
-
- LPWSTR
- WINAPI
- ResUtilGetExpandSzValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName,
- IN BOOL bExpand
- );
-
- __inline
- DWORD
- WINAPI
- ResUtilGetMultiSzValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName,
- OUT LPWSTR * ppszOutValue,
- OUT LPDWORD pcbOutValueSize
- )
- {
- return ResUtilGetBinaryValue( hkeyClusterKey, pszValueName, (LPBYTE *) ppszOutValue, pcbOutValueSize );
- }
-
- DWORD
- WINAPI
- ResUtilGetDwordValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName,
- OUT LPDWORD pdwOutValue,
- IN DWORD dwDefaultValue OPTIONAL
- );
-
- DWORD
- WINAPI
- ResUtilSetBinaryValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName,
- IN const LPBYTE pbNewValue,
- IN DWORD cbNewValueSize,
- IN OUT LPBYTE * ppbOutValue,
- IN OUT LPDWORD pcbOutValueSize
- );
-
- DWORD
- WINAPI
- ResUtilSetSzValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName,
- IN LPCWSTR pszNewValue,
- IN OUT LPWSTR * ppszOutString
- );
-
- DWORD
- WINAPI
- ResUtilSetExpandSzValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName,
- IN LPCWSTR pszNewValue,
- IN OUT LPWSTR * ppszOutString
- );
-
- DWORD
- WINAPI
- ResUtilSetMultiSzValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName,
- IN LPCWSTR pszNewValue,
- IN DWORD cbNewValueSize,
- IN OUT LPWSTR * ppszOutValue,
- IN OUT LPDWORD pcbOutValueSize
- );
-
- DWORD
- WINAPI
- ResUtilSetDwordValue(
- IN HKEY hkeyClusterKey,
- IN LPCWSTR pszValueName,
- IN DWORD dwNewValue,
- IN OUT LPDWORD pdwOutValue
- );
-
- DWORD
- WINAPI
- ResUtilGetBinaryProperty(
- OUT LPBYTE * ppbOutValue,
- OUT LPDWORD pcbOutValueSize,
- IN const PCLUSPROP_BINARY pValueStruct,
- IN const LPBYTE pbOldValue,
- IN DWORD cbOldValueSize,
- OUT LPBYTE * ppPropertyList,
- OUT LPDWORD pcbPropertyListSize
- );
-
- DWORD
- WINAPI
- ResUtilGetSzProperty(
- OUT LPWSTR * ppszOutValue,
- IN const PCLUSPROP_SZ pValueStruct,
- IN LPCWSTR pszOldValue,
- OUT LPBYTE * ppPropertyList,
- OUT LPDWORD pcbPropertyListSize
- );
-
- DWORD
- WINAPI
- ResUtilGetMultiSzProperty(
- OUT LPWSTR * ppszOutValue,
- OUT LPDWORD pcbOutValueSize,
- IN const PCLUSPROP_SZ pValueStruct,
- IN LPCWSTR pszOldValue,
- IN DWORD cbOldValueSize,
- OUT LPBYTE * ppPropertyList,
- OUT LPDWORD pcbPropertyListSize
- );
-
- DWORD
- WINAPI
- ResUtilGetDwordProperty(
- OUT LPDWORD pdwOutValue,
- IN const PCLUSPROP_DWORD pValueStruct,
- IN DWORD dwOldValue,
- IN DWORD dwMinimum,
- IN DWORD dwMaximum,
- OUT LPBYTE * ppPropertyList,
- OUT LPDWORD pcbPropertyListSize
- );
-
- LPVOID
- WINAPI
- ResUtilGetEnvironmentWithNetName(
- IN HRESOURCE hResource
- );
-
- DWORD
- WINAPI
- ResUtilFreeEnvironment(
- IN LPVOID lpEnvironment
- );
-
- LPWSTR
- WINAPI
- ResUtilExpandEnvironmentStrings(
- IN LPCWSTR pszSrc
- );
-
- DWORD
- WINAPI
- ResUtilSetResourceServiceEnvironment(
- IN LPCWSTR pszServiceName,
- IN HRESOURCE hResource,
- IN PLOG_EVENT_ROUTINE pfnLogEvent,
- IN RESOURCE_HANDLE hResourceHandle
- );
-
- DWORD
- WINAPI
- ResUtilSetResourceServiceStartParameters(
- IN LPCWSTR pszServiceName,
- IN SC_HANDLE schSCMHandle,
- IN OUT LPSC_HANDLE phService,
- IN PLOG_EVENT_ROUTINE pfnLogEvent,
- IN RESOURCE_HANDLE hResourceHandle
- );
-
- DWORD
- WINAPI
- ResUtilFindSzProperty(
- IN const PVOID pPropertyList,
- IN DWORD cbPropertyListSize,
- IN LPCWSTR pszPropertyName,
- OUT LPWSTR * pszPropertyValue
- );
-
- DWORD
- WINAPI
- ResUtilFindExpandSzProperty(
- IN const PVOID pPropertyList,
- IN DWORD cbPropertyListSize,
- IN LPCWSTR pszPropertyName,
- OUT LPWSTR * pszPropertyValue
- );
-
- DWORD
- WINAPI
- ResUtilFindExpandedSzProperty(
- IN const PVOID pPropertyList,
- IN DWORD cbPropertyListSize,
- IN LPCWSTR pszPropertyName,
- OUT LPWSTR * pszPropertyValue
- );
-
- DWORD
- WINAPI
- ResUtilFindDwordProperty(
- IN const PVOID pPropertyList,
- IN DWORD cbPropertyListSize,
- IN LPCWSTR pszPropertyName,
- OUT LPDWORD pdwPropertyValue
- );
-
- DWORD
- WINAPI
- ResUtilFindBinaryProperty(
- IN const PVOID pPropertyList,
- IN DWORD cbPropertyListSize,
- IN LPCWSTR pszPropertyName,
- OUT LPBYTE * pbPropertyValue,
- OUT LPDWORD pcbPropertyValueSize
- );
-
- DWORD
- WINAPI
- ResUtilFindMultiSzProperty(
- IN const PVOID pPropertyList,
- IN DWORD cbPropertyListSize,
- IN LPCWSTR pszPropertyName,
- OUT LPWSTR * pszPropertyValue,
- OUT LPDWORD pcbPropertyValueSize
- );
-
- DWORD
- WINAPI
- ResUtilFindLongProperty(
- IN const PVOID pPropertyList,
- IN DWORD cbPropertyListSize,
- IN LPCWSTR pszPropertyName,
- OUT LPLONG plPropertyValueSize
- );
-
-
- //
- // Common worker thread routines that allow a pending operation to
- // be cancelled with CORRECT synchronization.
- //
- typedef struct CLUS_WORKER {
- HANDLE hThread;
- BOOL Terminate;
- } CLUS_WORKER, *PCLUS_WORKER;
-
- typedef DWORD (WINAPI *PWORKER_START_ROUTINE)(
- PCLUS_WORKER pWorker,
- LPVOID lpThreadParameter
- );
-
- DWORD
- WINAPI
- ClusWorkerCreate(
- OUT PCLUS_WORKER lpWorker,
- IN PWORKER_START_ROUTINE lpStartAddress,
- IN PVOID lpParameter
- );
-
- BOOL
- WINAPI
- ClusWorkerCheckTerminate(
- IN PCLUS_WORKER lpWorker
- );
-
- VOID
- WINAPI
- ClusWorkerTerminate(
- IN PCLUS_WORKER lpWorker
- );
-
-
- //Define enumerate resource callback function. This gets called for each resource enumerated
- //by ResUtilEnumResources
- typedef DWORD (*LPRESOURCE_CALLBACK)( HRESOURCE, HRESOURCE , PVOID );
-
-
- BOOL
- WINAPI
- ResUtilResourcesEqual(
- IN HRESOURCE hSelf,
- IN HRESOURCE hResource
- );
-
-
- BOOL
- WINAPI
- ResUtilResourceTypesEqual(
- IN LPCWSTR lpszResourceTypeName,
- IN HRESOURCE hResource
- );
-
- BOOL
- WINAPI
- ResUtilIsResourceClassEqual(
- IN PCLUS_RESOURCE_CLASS_INFO prci,
- IN HRESOURCE hResource
- );
-
- DWORD
- WINAPI
- ResUtilEnumResources(
- IN HRESOURCE hSelf,
- IN LPCWSTR lpszResTypeName,
- IN LPRESOURCE_CALLBACK pResCallBack,
- IN PVOID pParameter
- );
-
- HRESOURCE
- WINAPI
- ResUtilGetResourceDependency(
- IN HANDLE hSelf,
- IN LPCWSTR lpszResourceType
- );
-
- HRESOURCE
- WINAPI
- ResUtilGetResourceDependencyByName(
- IN HCLUSTER hCluster,
- IN HANDLE hSelf,
- IN LPCWSTR lpszResourceType,
- IN BOOL bRecurse
- );
-
- HRESOURCE
- WINAPI
- ResUtilGetResourceDependencyByClass(
- IN HCLUSTER hCluster,
- IN HANDLE hSelf,
- IN PCLUS_RESOURCE_CLASS_INFO prci,
- IN BOOL bRecurse
- );
-
- HRESOURCE
- WINAPI
- ResUtilGetResourceNameDependency(
- IN LPCWSTR lpszResourceName,
- IN LPCWSTR lpszResourceType
- );
-
- DWORD
- WINAPI
- ResUtilGetResourceDependentIPAddressProps(
- IN HRESOURCE hResource,
- OUT LPWSTR pszAddress,
- IN OUT DWORD * pcchAddress,
- OUT LPWSTR pszSubnetMask,
- IN OUT DWORD * pcchSubnetMask,
- OUT LPWSTR pszNetwork,
- IN OUT DWORD * pcchNetwork
- );
-
- DWORD
- WINAPI
- ResUtilFindDependentDiskResourceDriveLetter(
- IN HCLUSTER hCluster, // handle to cluster
- IN HRESOURCE hResource, // handle to resource to query for dependencies
- IN LPWSTR pszDriveLetter, // buffer to store drive letter (ex. "X:\0")
- IN OUT DWORD *pcchDriveLetter // IN size of the pszDriveLetter buffer, OUT size of buffer required
- );
-
- #ifdef __cplusplus
- }
- #endif
-
-
- #endif // ifdef _RESAPI_DEFINES_
- #pragma option pop /*P_O_Pop*/
-