Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

107 lines
3.3 KiB

/*++
Copyright (c) 2001 Microsoft Corporation
All rights reserved.
Module Name:
ntstatus.hxx
Abstract:
auto log
Author:
Larry Zhu (LZhu) December 8, 2001
Revision History:
--*/
#ifndef _NTSTATUS_HXX_
#define _NTSTATUS_HXX_
#include "dbgstate.hxx"
#ifdef DBG
#define RELOCATE_ONE_2( _q ) \
{ \
ULONG_PTR Offset; \
\
Offset = (((PUCHAR)((_q)->Buffer)) - ((PUCHAR)ClientBufferBase)); \
if ( Offset >= SubmitBufferSize || \
Offset + (_q)->Length > SubmitBufferSize || \
!COUNT_IS_ALIGNED( Offset, ALIGN_WCHAR) ) { \
\
SspPrint((SSP_CRITICAL, "Failed RELOCATE_ONE\n")); \
Status DBGCHK = STATUS_INVALID_PARAMETER; \
goto Cleanup; \
} \
\
(_q)->Buffer = (PWSTR)(((PUCHAR)ProtocolSubmitBuffer) + Offset); \
(_q)->MaximumLength = (_q)->Length ; \
}
#define NULL_RELOCATE_ONE_2( _q ) \
{ \
if ( (_q)->Buffer == NULL ) { \
if ( (_q)->Length != 0 ) { \
Status DBGCHK = STATUS_INVALID_PARAMETER; \
goto Cleanup; \
} \
} else if ( (_q)->Length == 0 ) { \
(_q)->Buffer = NULL; \
} else { \
RELOCATE_ONE_2( _q ); \
} \
}
/********************************************************************
TNtStatus
********************************************************************/
class TNtStatus : public TStatusDerived<NTSTATUS> {
public:
TNtStatus(
IN NTSTATUS Status = kUnInitializedValue
);
~TNtStatus(
VOID
);
virtual BOOL
IsErrorSevereEnough(
VOID
) const;
virtual PCTSTR
GetErrorServerityDescription(
VOID
) const;
private:
TNtStatus(const TNtStatus& rhs);
NTSTATUS
operator=(
IN NTSTATUS Status
);
};
#else
#define TNtStatus NTSTATUS // NTSTATUS in free build
#define RELOCATE_ONE_2(_q) RELOCATE_ONE(_q)
#define NULL_RELOCATE_ONE_2(_q) NULL_RELOCATE_ONE(_q)
#endif // DBG
#endif // _NTSTATUS_HXX