// Exception.cpp: implementation of the CException class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Exception.h"

PEXCEPTION_DATA	g_pExpData;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CException::CException()
{
	Constructor((PUCHAR)"N/A", NDIS_STATUS_FAILURE); 
}

CException::~CException()
{
	NdisFreeString(m_strNdisErrorMessage);
}


		
CException::CException(DWORD dwErr)
{ 
	Constructor((PUCHAR)"N/A", dwErr); 
}
		
CException::CException(PUCHAR ptrErr, DWORD dwErr)
{ 
	Constructor(ptrErr, dwErr); 
}


void CException::Constructor(PUCHAR ptrErr, DWORD dwError)
{
	m_dwErrorCode = dwError;
	NdisInitializeString(&m_strNdisErrorMessage,ptrErr);
}
	
void CException::PrintErrorMessage(void)
{
	MSG((
		TEXT("DM9 Exception Level(%d) - "),g_pExpData->nIndex+1));
	MSG((m_strNdisErrorMessage.Buffer));
	MSG((_T("\r\n"))); 
}
	
DWORD CException::GetErrorCode(void) 
{ 
	return m_dwErrorCode; 
}