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.
60 lines
1.3 KiB
60 lines
1.3 KiB
/*++
|
|
|
|
Copyright (c) 2000 Microsoft Corporation
|
|
|
|
Module Name :
|
|
|
|
scartss.h
|
|
|
|
Abstract:
|
|
|
|
Smart card subsystem device object handles one redirected smart card subsystem
|
|
|
|
Revision History:
|
|
|
|
JoyC 9/11 Created
|
|
|
|
--*/
|
|
#pragma once
|
|
|
|
typedef enum {
|
|
dsCreated,
|
|
dsInitialized,
|
|
dsDisconnected
|
|
} DrSmartCardState;
|
|
|
|
class DrSmartCard : public DrDevice
|
|
{
|
|
private:
|
|
|
|
LONG _CreateRefCount;
|
|
DrSmartCardState _SmartCardState;
|
|
protected:
|
|
virtual BOOL IsDeviceNameValid();
|
|
public:
|
|
DoubleList _MidList;
|
|
|
|
DrSmartCard(SmartPtr<DrSession> &Session, ULONG DeviceType,
|
|
ULONG DeviceId, PUCHAR PreferredDosName);
|
|
|
|
virtual NTSTATUS Initialize(PRDPDR_DEVICE_ANNOUNCE devAnnounceMsg, ULONG Length);
|
|
|
|
virtual BOOL SupportDiscon();
|
|
virtual BOOL IsAvailable()
|
|
{
|
|
return (_DeviceStatus == dsAvailable || _DeviceStatus == dsConnected);
|
|
}
|
|
virtual void Disconnect ();
|
|
|
|
void AddDeviceRef() {
|
|
InterlockedIncrement(&_CreateRefCount);
|
|
}
|
|
virtual VOID Remove() { }
|
|
|
|
virtual NTSTATUS Create(IN OUT PRX_CONTEXT RxContext);
|
|
virtual NTSTATUS Close(IN OUT PRX_CONTEXT RxContext);
|
|
virtual NTSTATUS IoControl(IN OUT PRX_CONTEXT RxContext);
|
|
|
|
void ClientConnect(PRDPDR_DEVICE_ANNOUNCE devAnnouceMsg, ULONG Length);
|
|
};
|
|
|