#include "config.h"
#include <time.h>
#include <stdio.h>
#include <string.h>
#include "pcsclite.h"
#include "winscard.h"
#include "debuglog.h"
#include "winscard_msg.h"
#include "winscard_svc.h"
#include "sys_generic.h"
#include "thread_generic.h"
Go to the source code of this file.
Data Structures | |
struct | _psContext |
Represents the an Application Context on the Server side. More... | |
Functions | |
LONG | MSGCheckHandleAssociation (SCARDHANDLE, DWORD) |
LONG | MSGFunctionDemarshall (psharedSegmentMsg msgStruct, DWORD dwContextIndex) |
Find out which message was sent by the Client and execute the right task. | |
LONG | MSGAddContext (SCARDCONTEXT, DWORD) |
LONG | MSGRemoveContext (SCARDCONTEXT, DWORD) |
LONG | MSGAddHandle (SCARDCONTEXT, SCARDHANDLE, DWORD) |
LONG | MSGRemoveHandle (SCARDHANDLE, DWORD) |
LONG | MSGCleanupClient (DWORD) |
static void | ContextThread (DWORD *pdwIndex) |
Handles messages received from Clients. | |
LONG | ContextsInitialize (void) |
LONG | CreateContextThread (PDWORD pdwClientID) |
Creates threads to handle messages received from Clients. | |
Variables | |
static struct _psContext | psContext [PCSCLITE_MAX_APPLICATIONS_CONTEXTS] |
Represents the an Application Context on the Server side. | |
static DWORD | dwNextContextIndex |
Index of an avaiable Application Context slot in psContext . |
Each Client message is deald by creating a thread (CreateContextThread
). The thread establishes reands and demarshalls the message and calls the appropriate function to threat it.
Definition in file winscard_svc.c.
|
Handles messages received from Clients. For each Client message a new instance of this thread is created.
Definition at line 129 of file winscard_svc.c. References rxSharedSegment::data, Log1, Log2, Log3, version_struct::major, version_struct::minor, MSGCleanupClient(), MSGFunctionDemarshall(), rxSharedSegment::mtype, PCSCLITE_SERVER_ATTEMPTS, _psContext::protocol_major, _psContext::protocol_minor, PROTOCOL_VERSION_MAJOR, PROTOCOL_VERSION_MINOR, psContext, version_struct::rv, SCARD_S_SUCCESS, SHMMessageSend(), SHMProcessEventsContext(), and SYS_ThreadExit(). |
|
Creates threads to handle messages received from Clients.
Definition at line 81 of file winscard_svc.c. References PCSCLITE_MAX_APPLICATIONS_CONTEXTS, and psContext. Referenced by SVCServiceRunLoop(). |
|
|
Represents the an Application Context on the Server side.
An Application Context contains Channels ( Referenced by ContextsInitialize(), ContextThread(), CreateContextThread(), MSGAddContext(), MSGAddHandle(), MSGCheckHandleAssociation(), MSGCleanupClient(), MSGRemoveContext(), and MSGRemoveHandle(). |