73 lines
2.3 KiB
C++
73 lines
2.3 KiB
C++
|
//+------------------------------------------------------------------
|
||
|
//
|
||
|
// Copyright (C) 1996, Microsoft Corporation
|
||
|
//
|
||
|
// File: RECOVER.HXX
|
||
|
//
|
||
|
// Contents: It contains basic definition for DFS Manager Recover test
|
||
|
// hooks
|
||
|
//
|
||
|
// Synoposis:
|
||
|
//
|
||
|
// Classes:
|
||
|
//
|
||
|
// Functions:
|
||
|
//
|
||
|
// History: February 22, 1992 AlokS Created
|
||
|
//
|
||
|
//-------------------------------------------------------------------
|
||
|
#ifndef __RECOVER_HXX__
|
||
|
#define __RECOVER_HXX__
|
||
|
|
||
|
#if (DBG == 1) || (_CT_TEST_HOOK == 1)
|
||
|
|
||
|
#include "dfsmrshl.h"
|
||
|
|
||
|
//
|
||
|
// Currently, the longest API name is SetVolumeState, which is 14 chars long.
|
||
|
// If a longer interface comes along, increase the size of the buffer
|
||
|
// accordingly
|
||
|
//
|
||
|
typedef struct _RECOVERY_BREAK_POINT
|
||
|
{
|
||
|
ULONG BreakPt;
|
||
|
PWSTR pwszApiBreak;
|
||
|
} RECOVERY_BREAK_POINT, *PRECOVERY_BREAK_POINT;
|
||
|
|
||
|
extern RECOVERY_BREAK_POINT gRecoveryBkptInfo;
|
||
|
|
||
|
//
|
||
|
// This macro will cause the active process to terminate it the current api
|
||
|
// and check point match those that should cause a failure
|
||
|
//
|
||
|
#define RECOVERY_TEST_POINT(pwzapi, checkpt) \
|
||
|
if (checkpt == gRecoveryBkptInfo.BreakPt && \
|
||
|
_wcsicmp(pwzapi, gRecoveryBkptInfo.pwszApiBreak) == 0) { \
|
||
|
\
|
||
|
ExitProcess(ERROR_PROCESS_ABORTED); \
|
||
|
\
|
||
|
}
|
||
|
|
||
|
|
||
|
extern MARSHAL_INFO MiRecoveryBkpt;
|
||
|
|
||
|
#define INIT_RECOVERY_BREAK_INFO() \
|
||
|
static MARSHAL_TYPE_INFO _MCode_RecoveryBreak[] = { \
|
||
|
_MCode_ul(RECOVERY_BREAK_POINT, BreakPt), \
|
||
|
_MCode_pwstr(RECOVERY_BREAK_POINT, pwszApiBreak) \
|
||
|
}; \
|
||
|
MARSHAL_INFO MiRecoveryBkpt = \
|
||
|
_mkMarshalInfo(RECOVERY_BREAK_POINT, _MCode_RecoveryBreak);
|
||
|
|
||
|
|
||
|
//
|
||
|
// This function will get the information needed from the passed in buffer
|
||
|
//
|
||
|
NTSTATUS DfsSetRecoveryBreakPoint(PBYTE pBuffer, ULONG cbSize);
|
||
|
|
||
|
#else
|
||
|
#define RECOVERY_TEST_POINT(pwzapi, checkpt)
|
||
|
#endif
|
||
|
|
||
|
#endif // __RECOVER_HXX__
|