windows-nt/Source/XPSP1/NT/drivers/smartcrd/gempc430/protocol.cpp
2020-09-26 16:20:57 +08:00

50 lines
1.2 KiB
C++

#include "protocol.h"
#include "kernel.h"
#pragma PAGEDCODE
CProtocol::CProtocol()
{
m_Status = STATUS_INSUFFICIENT_RESOURCES;
device = NULL;
memory = NULL;
debug = NULL;
m_Status = STATUS_SUCCESS;
};
CProtocol::CProtocol(CDevice* device)
{
m_Status = STATUS_INSUFFICIENT_RESOURCES;
this->device = device;
memory = kernel->createMemory();
debug = kernel->createDebug();
if(ALLOCATED_OK(memory))
{
pOutputBuffer = (PUCHAR) memory->allocate(NonPagedPool,PROTOCOL_OUTPUT_BUFFER_SIZE);
pInputBuffer = (PUCHAR) memory->allocate(NonPagedPool,PROTOCOL_INPUT_BUFFER_SIZE);
if(pOutputBuffer && pInputBuffer)
{
OutputBufferLength = PROTOCOL_OUTPUT_BUFFER_SIZE;
InputBufferLength = PROTOCOL_INPUT_BUFFER_SIZE;
}
else
{
if(pOutputBuffer) memory->free(pOutputBuffer);
if(pInputBuffer) memory->free(pInputBuffer);
pOutputBuffer = NULL;
pInputBuffer = NULL;
}
}
TRACE("New Protocol %8.8lX was created...\n",this);
if(ALLOCATED_OK(memory) && device) m_Status = STATUS_SUCCESS;
};
CProtocol::~CProtocol()
{
if(pOutputBuffer) memory->free(pOutputBuffer);
if(pInputBuffer) memory->free(pInputBuffer);
if(memory) memory->dispose();
if(debug) debug->dispose();
TRACE("Protocol %8.8lX was destroied...\n",this);
};