210 lines
3.7 KiB
C
210 lines
3.7 KiB
C
/*++
|
|
|
|
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;
|