75 lines
3.3 KiB
C++
75 lines
3.3 KiB
C++
// Gemplus (C) 1999
|
|
// This object defines any reader interface.
|
|
// So all reader should implement it.
|
|
// Version 1.0
|
|
// Author: Sergey Ivanov
|
|
// Date of creation - 11.01.1999
|
|
// Change log:
|
|
//
|
|
#ifndef _READER_
|
|
#define _READER_
|
|
|
|
#include "generic.h"
|
|
|
|
#pragma PAGEDCODE
|
|
class CSmartCard;
|
|
class CUSBReader;//TOBE REMOVED
|
|
// Abstruct class
|
|
class CReader
|
|
{
|
|
public:
|
|
NTSTATUS m_Status;
|
|
SAFE_DESTRUCTORS();
|
|
virtual VOID dispose(){self_delete();};
|
|
public:
|
|
CReader() {};
|
|
virtual ~CReader(){};
|
|
|
|
//virtual BOOL createInterface(LONG interfaceType, LONG protocolType,CDevice* device) {return FALSE;};//TOBE CHANGED
|
|
virtual BOOL createInterface(LONG interfaceType, LONG protocolType,CUSBReader* device) {return FALSE;};
|
|
virtual BOOL isSmartCardInitialized() {return FALSE;};
|
|
virtual VOID setSmartCardInitialized(BOOL state) {};
|
|
virtual VOID initializeSmartCardSystem() {};
|
|
|
|
virtual PSMARTCARD_EXTENSION getCardExtention() {return NULL;};
|
|
virtual CSmartCard* getSmartCard() {return NULL;};
|
|
virtual PDEVICE_OBJECT getSystemDeviceObject() {return NULL;};
|
|
|
|
// Synchronization functions...
|
|
virtual VOID reader_set_busy() {};
|
|
virtual VOID reader_set_Idle() {};
|
|
virtual NTSTATUS reader_WaitForIdle() {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_WaitForIdleAndBlock() {return STATUS_SUCCESS;};
|
|
|
|
// Interface with smartcard system
|
|
virtual ULONG reader_UpdateCardState() {return 0;};
|
|
//virtual ULONG getCardState() {return 0;};
|
|
//virtual VOID setCardState(ULONG state) {};
|
|
|
|
virtual NTSTATUS reader_getVersion(PUCHAR pVersion, PULONG pLength) {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_setMode(ULONG mode) {return STATUS_SUCCESS;};
|
|
|
|
virtual VOID setNotificationState(ULONG state) {};
|
|
virtual ULONG getNotificationState() {return 0;};
|
|
virtual VOID completeCardTracking() {};
|
|
|
|
#ifdef DEBUG
|
|
// Defines methods to process system requests...
|
|
virtual NTSTATUS reader_Read(IN PIRP Irp) {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_Write(IN PIRP Irp) {return STATUS_SUCCESS;};
|
|
#endif
|
|
|
|
// Define methods to process driver requests...
|
|
virtual NTSTATUS reader_Read(BYTE * pRequest,ULONG RequestLength,BYTE * pReply,ULONG* pReplyLength) {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_Write(BYTE* pRequest,ULONG RequestLength,BYTE * pReply,ULONG* pReplyLength) {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_Ioctl(ULONG ControlCode,BYTE* pRequest,ULONG RequestLength,BYTE* pReply,ULONG* pReplyLength) {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_SwitchSpeed(ULONG ControlCode,BYTE* pRequest,ULONG RequestLength,BYTE* pReply,ULONG* pReplyLength) {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_VendorAttribute(ULONG ControlCode,BYTE* pRequest,ULONG RequestLength,BYTE* pReply,ULONG* pReplyLength) {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_Power(ULONG ControlCode,BYTE* pReply,ULONG* pReplyLength, BOOLEAN Specific) {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_SetProtocol(ULONG ProtocolRequested, UCHAR ProtocolNegociation) {return STATUS_SUCCESS;};
|
|
|
|
virtual NTSTATUS reader_translate_request(BYTE * pRequest,ULONG RequestLength,BYTE * pReply,ULONG* pReplyLength, PSCARD_CARD_CAPABILITIES cardCapabilities, BYTE NewWtx) {return STATUS_SUCCESS;};
|
|
virtual NTSTATUS reader_translate_response(BYTE * pRequest,ULONG RequestLength,BYTE * pReply,ULONG* pReplyLength) {return STATUS_SUCCESS;};
|
|
};
|
|
|
|
#endif // If defined
|