|
|
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
cpp.h
Abstract:
Private data structures and procedure prototypes for the Checkpoint Manager (CP) subcomponent of the NT Cluster Service
Author:
John Vert (jvert) 1/14/1997
Revision History:
--*/ #define UNICODE 1
#include "nt.h"
#include "ntrtl.h"
#include "nturtl.h"
#include "service.h"
#define LOG_CURRENT_MODULE LOG_MODULE_CP
//global data relating to the quorum resource
#if NO_SHARED_LOCKS
extern CRITICAL_SECTION gQuoLock; #else
extern RTL_RESOURCE gQuoLock; #endif
//
// Local function prototypes
//
typedef struct _CP_CALLBACK_CONTEXT { PFM_RESOURCE Resource; LPCWSTR lpszPathName; BOOL IsChangeFileAttribute; } CP_CALLBACK_CONTEXT, *PCP_CALLBACK_CONTEXT;
DWORD CppReadCheckpoint( IN PFM_RESOURCE Resource, IN DWORD dwCheckpointId, IN LPCWSTR lpszFileName, IN BOOLEAN fCryptoCheckpoint );
DWORD CppWriteCheckpoint( IN PFM_RESOURCE Resource, IN DWORD dwCheckpointId, IN LPCWSTR lpszFileName, IN BOOLEAN fCryptoCheckpoint );
DWORD CppGetCheckpointFile( IN PFM_RESOURCE Resource, IN DWORD dwId, OUT OPTIONAL LPWSTR *pDirectoryName, OUT LPWSTR *pFileName, IN OPTIONAL LPCWSTR lpszQuorumDir, IN BOOLEAN fCryptoCheckpoint );
DWORD CppCheckpoint( IN PFM_RESOURCE Resource, IN HKEY hKey, IN DWORD dwId, IN LPCWSTR KeyName );
//
// Crypto key checkpoint interfaces
//
DWORD CpckReplicateCryptoKeys( IN PFM_RESOURCE Resource );
BOOL CpckRemoveCheckpointFileCallback( IN LPWSTR ValueName, IN LPVOID ValueData, IN DWORD ValueType, IN DWORD ValueSize, IN PCP_CALLBACK_CONTEXT Context );
//
// Registry watcher interfaces
//
DWORD CppWatchRegistry( IN PFM_RESOURCE Resource );
DWORD CppUnWatchRegistry( IN PFM_RESOURCE Resource );
DWORD CppRegisterNotify( IN PFM_RESOURCE Resource, IN LPCWSTR lpszKeyName, IN DWORD dwId );
DWORD CppRundownCheckpoints( IN PFM_RESOURCE Resource );
DWORD CppRundownCheckpointById( IN PFM_RESOURCE Resource, IN DWORD dwId );
DWORD CppInstallDatabase( IN HKEY hKey, IN LPWSTR FileName );
BOOL CppRemoveCheckpointFileCallback( IN LPWSTR ValueName, IN LPVOID ValueData, IN DWORD ValueType, IN DWORD ValueSize, IN PCP_CALLBACK_CONTEXT Context );
DWORD CppDeleteCheckpointFile( IN PFM_RESOURCE Resource, IN DWORD dwCheckpointId, IN OPTIONAL LPCWSTR lpszQuorumPath );
DWORD CpckDeleteCheckpointFile( IN PFM_RESOURCE Resource, IN DWORD dwCheckpointId, IN OPTIONAL LPCWSTR lpszQuorumPath ); DWORD CppDeleteFile( IN PFM_RESOURCE Resource, IN DWORD dwCheckpointId, IN OPTIONAL LPCWSTR lpszQuorumPath );
DWORD CpckDeleteFile( IN PFM_RESOURCE Resource, IN DWORD dwCheckpointId, IN OPTIONAL LPCWSTR lpszQuorumPath );
DWORD CpckDeleteCryptoFile( IN PFM_RESOURCE Resource, IN DWORD dwCheckpointId, IN OPTIONAL LPCWSTR lpszQuorumPath );
error_status_t CppDepositCheckpoint( handle_t IDL_handle, LPCWSTR ResourceId, DWORD dwCheckpointId, BYTE_PIPE CheckpointData, BOOLEAN fCryptoCheckpoint );
error_status_t CppRetrieveCheckpoint( handle_t IDL_handle, LPCWSTR ResourceId, DWORD dwCheckpointId, BOOLEAN fCryptoCheckpoint, BYTE_PIPE CheckpointData );
error_status_t CppDeleteCheckpoint( handle_t IDL_handle, LPCWSTR ResourceId, DWORD dwCheckpointId, LPCWSTR lpszQuorumPath, BOOL fCryptoCheckpoint );
BOOL CppIsQuorumVolumeOffline( VOID );
extern CRITICAL_SECTION CppNotifyLock; extern LIST_ENTRY CpNotifyListHead;
|