FreeRDP
|
#include <freerdp/config.h>
#include <winpr/crt.h>
#include <winpr/smartcard.h>
#include <winpr/environment.h>
#include <freerdp/freerdp.h>
#include <freerdp/channels/rdpdr.h>
#include <freerdp/channels/scard.h>
#include <freerdp/utils/smartcard_call.h>
#include <freerdp/utils/smartcard_operations.h>
#include <freerdp/utils/rdpdr_utils.h>
#include "smartcard_main.h"
Macros | |
#define | CAST_FROM_DEVICE(device) cast_device_from(device, __func__, __FILE__, __LINE__) |
#define | DeviceServiceEntry smartcard_DeviceServiceEntry |
Functions | |
static void | smartcard_context_free (void *pCtx) |
static UINT | smartcard_complete_irp (SMARTCARD_DEVICE *smartcard, IRP *irp, BOOL *handled) |
static SMARTCARD_DEVICE * | cast_device_from (DEVICE *device, const char *fkt, const char *file, size_t line) |
static DWORD WINAPI | smartcard_context_thread (LPVOID arg) |
static void | smartcard_operation_queue_free (void *obj) |
static void * | smartcard_context_new (void *smartcard, SCARDCONTEXT hContext) |
static void | smartcard_release_all_contexts (SMARTCARD_DEVICE *smartcard) |
static UINT | smartcard_free_ (SMARTCARD_DEVICE *smartcard) |
static UINT | smartcard_free (DEVICE *device) |
static UINT | smartcard_init (DEVICE *device) |
static UINT | smartcard_process_irp (SMARTCARD_DEVICE *smartcard, IRP *irp, BOOL *handled) |
static DWORD WINAPI | smartcard_thread_func (LPVOID arg) |
static UINT | smartcard_irp_request (DEVICE *device, IRP *irp) |
static void | smartcard_free_irp (void *obj) |
if (!sSmartcard) | |
if (pEntryPoints->device->Name) | |
Variables | |
static SMARTCARD_DEVICE * | sSmartcard = NULL |
size_t | length = 0 |
UINT | error = CHANNEL_RC_NO_MEMORY |
else | smartcard = sSmartcard |
return | CHANNEL_RC_OK |
fail | __pad0__ |
#define CAST_FROM_DEVICE | ( | device | ) | cast_device_from(device, __func__, __FILE__, __LINE__) |
FreeRDP: A Remote Desktop Protocol Implementation Smartcard Device Service Virtual Channel
Copyright 2011 O.S. Systems Software Ltda. Copyright 2011 Eduardo Fiss Beloni belon Copyright 2011 Anthony Tong i@os syste ms.c om.bratong Copyright 2015 Thincast Technologies GmbH Copyright 2015 DI (FH) Martin Haimberger @tru stedc s.co mmarti Copyright 2016 David PHAM-VAN n.ha imber ger@ thinc ast. comd.pha mvan @inuv ika. com
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
#define DeviceServiceEntry smartcard_DeviceServiceEntry |
|
static |
if | ( | ! | sSmartcard | ) |
if | ( | pEntryPoints->device-> | Name | ) |
|
static |
Function description
|
static |
|
static |
|
static |
|
static |
Function description
Calling smartcard_release_all_contexts to unblock all operations waiting for transactions to unlock.
|
static |
|
static |
|
static |
Initialization occurs when the protocol server sends a device announce message. At that time, we need to cancel all outstanding IRPs. Function description
|
static |
Function description
|
static |
|
static |
Multiple threads and SCardGetStatusChange: http://musclecard.996296.n3.nabble.com/Multiple-threads-and-SCardGetStatusChange-td4430.html Function description
|
static |
|
static |
fail __pad0__ |
return CHANNEL_RC_OK |
return error = CHANNEL_RC_NO_MEMORY |
size_t length = 0 |
Function description
else smartcard = sSmartcard |
|
static |