|
|
/*****************************************************************************
@doc INT EXT ****************************************************************************** * $ProjectName: $ * $ProjectRevision: $ *----------------------------------------------------------------------------- * $Source: z:/pr/cmbp0/sw/cmbp0.ms/rcs/cmbp0scr.h $ * $Revision: 1.3 $ *----------------------------------------------------------------------------- * $Author: WFrischauf $ *----------------------------------------------------------------------------- * History: see EOF *----------------------------------------------------------------------------- * * Copyright � 2000 OMNIKEY AG ******************************************************************************/
#if !defined ( __CMMOB_PNP_SCR_H__ )
#define __CMMOB_PNP_SCR_H__
#define ADDR_WRITEREG_FLAGS0 0x00
#define ADDR_WRITEREG_FLAGS1 0x01
#define ADDR_WRITEREG_PROCEDURE_T0 0x02
#define ADDR_WRITEREG_BUFFER_ADDR 0x03
#define ADDR_WRITEREG_BUFFER_DATA 0x04
#define ADDR_WRITEREG_MESSAGE_LENGTH 0x05
#define ADDR_WRITEREG_BAUDRATE 0x06
#define ADDR_WRITEREG_STOPBITS 0x07
#define ADDR_READREG_FLAGS0 0x00
#define ADDR_READREG_LASTPROCEDURE_T0 0x01
#define ADDR_READREG_BYTESTORECEIVE_T1 0x01
#define ADDR_READREG_BYTES_RECEIVED 0x02
#define ADDR_READREG_FLAGS1 0x03
#define ADDR_READREG_BUFFER_DATA 0x04
// Flags 0 Read Register
#define FLAG_INSERTED 0x01
#define FLAG_POWERED 0x02
#define FLAG_BYTES_RECEIVED_B9 0x04
// meaning of the flag: Receiving T1
// Receiving T0 finished
// Reader detection
#define FLAG_RECEIVE 0x08
// Flag 1 Read Register
#define FLAG_NOPROCEDURE_RECEIVED 0x80
// Flags 1 Write Register
#define FLAG_BAUDRATE_HIGH 0x01
#define FLAG_INVERS_PARITY 0x02
#define FLAG_CLOCK_8MHZ 0x04
#define FLAG_T0_WRITE 0x08
#define FLAG_BUFFER_ADDR_B9 0x10
#define FLAG_TACTIVE 0x20
#define FLAG_CHECK_PRESENCE 0x40
#define FLAG_READ_CIS 0x80
// Flags 0 Write Register (Commands)
#define CMD_RESET_SM 0x80
#define CMD_POWERON_COLD 0x44
#define CMD_POWERON_WARM 0x46
#define CMD_POWEROFF 0x42
#define CMD_WRITE_T0 0x48
#define CMD_WRITE_T1 0x50
NTSTATUS CMMOB_CardPower ( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_PowerOnCard ( IN PSMARTCARD_EXTENSION SmartcardExtension, IN PUCHAR pbATR, IN BOOLEAN fMaxWaitTime, OUT PULONG pulATRLength );
NTSTATUS CMMOB_PowerOffCard ( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_Transmit ( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_TransmitT0 ( PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_TransmitT1 ( PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_SetProtocol ( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_SetFlags1 ( PREADER_EXTENSION ReaderExtension );
NTSTATUS CMMOB_IoCtlVendor ( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_SetHighSpeed_CR80S_SAMOS ( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_SetSpeed ( IN PSMARTCARD_EXTENSION SmartcardExtension, IN PUCHAR abFIDICommand );
NTSTATUS CMMOB_SetReader_9600Baud ( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_SetReader_38400Baud ( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_ReadDeviceDescription( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_GetFWVersion ( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_CardTracking ( IN PSMARTCARD_EXTENSION SmartcardExtension );
VOID CMMOB_CompleteCardTracking( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_CancelCardTracking( PDEVICE_OBJECT DeviceObject, PIRP Irp );
NTSTATUS CMMOB_StartCardTracking( IN PDEVICE_OBJECT DeviceObject );
VOID CMMOB_StopCardTracking( IN PDEVICE_OBJECT DeviceObject );
VOID CMMOB_UpdateCurrentStateThread( IN PVOID Context );
NTSTATUS CMMOB_UpdateCurrentState( IN PSMARTCARD_EXTENSION SmartcardExtension );
NTSTATUS CMMOB_ResetReader( IN PREADER_EXTENSION ReaderExtension );
NTSTATUS CMMOB_BytesReceived( IN PREADER_EXTENSION ReaderExtension, OUT PULONG pulBytesReceived );
NTSTATUS CMMOB_SetCardParameters( IN PREADER_EXTENSION ReaderExtension );
BOOLEAN CMMOB_CardInserted( IN PREADER_EXTENSION ReaderExtension );
BOOLEAN CMMOB_CardPowered( IN PREADER_EXTENSION ReaderExtension );
BOOLEAN CMMOB_ProcedureReceived( IN PREADER_EXTENSION ReaderExtension );
BOOLEAN CMMOB_GetReceiveFlag( IN PREADER_EXTENSION ReaderExtension );
NTSTATUS CMMOB_GetProcedureByte( IN PREADER_EXTENSION ReaderExtension, OUT PUCHAR pbProcedureByte ); NTSTATUS CMMOB_ReadRegister( IN PREADER_EXTENSION ReaderExtension, IN USHORT usAddress, OUT PUCHAR pbData );
NTSTATUS CMMOB_WriteRegister( IN PREADER_EXTENSION ReaderExtension, IN USHORT usAddress, IN UCHAR bData );
NTSTATUS CMMOB_ReadBuffer( IN PREADER_EXTENSION ReaderExtension, IN ULONG ulOffset, IN ULONG ulLength, OUT PUCHAR pbData );
NTSTATUS CMMOB_WriteBuffer( IN PREADER_EXTENSION ReaderExtension, IN ULONG ulLength, IN PUCHAR pbData );
NTSTATUS CMMOB_ReadT0( IN PREADER_EXTENSION ReaderExtension, IN ULONG ulBytesToRead, IN ULONG ulBytesSent, IN ULONG ulCWT, OUT PUCHAR pbData, OUT PULONG pulBytesRead, OUT PBOOLEAN pfDataSent );
NTSTATUS CMMOB_ReadT1( IN PREADER_EXTENSION ReaderExtension, IN LONG ulBytesToRead, IN ULONG ulBWT, IN ULONG ulCWT, OUT PUCHAR pbData, OUT PULONG pulBytesRead );
NTSTATUS CMMOB_WriteT0( IN PREADER_EXTENSION ReaderExtension, IN ULONG ulBytesToWrite, IN ULONG ulBytesToReceive, IN PUCHAR pbData );
NTSTATUS CMMOB_WriteT1( IN PREADER_EXTENSION ReaderExtension, IN ULONG ulBytesToWrite, IN PUCHAR pbData );
VOID CMMOB_InverseBuffer ( PUCHAR pbBuffer, ULONG ulBufferSize );
#endif // __CMMOB_PNP_SCR_H__
/*****************************************************************************
* History: * $Log: cmbp0scr.h $ * Revision 1.3 2000/07/27 13:53:05 WFrischauf * No comment given * * ******************************************************************************/
|