Blame winpr/libwinpr/smartcard/smartcard_inspect.c

Packit 1fb8d4
/**
Packit 1fb8d4
 * WinPR: Windows Portable Runtime
Packit 1fb8d4
 * Smart Card API
Packit 1fb8d4
 *
Packit 1fb8d4
 * Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit Service 5a9772
 * Copyright 2020 Armin Novak <armin.novak@thincast.com>
Packit Service 5a9772
 * Copyright 2020 Thincast Technologies GmbH
Packit 1fb8d4
 *
Packit 1fb8d4
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit 1fb8d4
 * you may not use this file except in compliance with the License.
Packit 1fb8d4
 * You may obtain a copy of the License at
Packit 1fb8d4
 *
Packit 1fb8d4
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit 1fb8d4
 *
Packit 1fb8d4
 * Unless required by applicable law or agreed to in writing, software
Packit 1fb8d4
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit 1fb8d4
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 1fb8d4
 * See the License for the specific language governing permissions and
Packit 1fb8d4
 * limitations under the License.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#ifdef HAVE_CONFIG_H
Packit 1fb8d4
#include "config.h"
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit 1fb8d4
#include <winpr/crt.h>
Packit 1fb8d4
#include <winpr/wlog.h>
Packit 1fb8d4
#include <winpr/file.h>
Packit 1fb8d4
#include <winpr/path.h>
Packit 1fb8d4
#include <winpr/library.h>
Packit 1fb8d4
#include <winpr/smartcard.h>
Packit 1fb8d4
Packit 1fb8d4
#include "smartcard_inspect.h"
Packit 1fb8d4
Packit Service 5a9772
static const DWORD g_LogLevel = WLOG_DEBUG;
Packit 1fb8d4
static wLog* g_Log = NULL;
Packit 1fb8d4
Packit Service 5a9772
static const SCardApiFunctionTable* g_SCardApi = NULL;
Packit 1fb8d4
Packit 1fb8d4
/**
Packit 1fb8d4
 * Standard Windows Smart Card API
Packit 1fb8d4
 */
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1,
Packit Service 5a9772
                                                 LPCVOID pvReserved2, LPSCARDCONTEXT phContext)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardEstablishContext { dwScope: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetScopeString(dwScope), dwScope);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardEstablishContext(dwScope, pvReserved1, pvReserved2, phContext);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardEstablishContext } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardReleaseContext(SCARDCONTEXT hContext)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReleaseContext { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardReleaseContext(hContext);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReleaseContext } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardIsValidContext(SCARDCONTEXT hContext)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIsValidContext { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardIsValidContext(hContext);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIsValidContext } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListReaderGroupsA(SCARDCONTEXT hContext, LPSTR mszGroups,
Packit Service 5a9772
                                                  LPDWORD pcchGroups)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReaderGroupsA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardListReaderGroupsA(hContext, mszGroups, pcchGroups);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReaderGroupsA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListReaderGroupsW(SCARDCONTEXT hContext, LPWSTR mszGroups,
Packit Service 5a9772
                                                  LPDWORD pcchGroups)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReaderGroupsW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardListReaderGroupsW(hContext, mszGroups, pcchGroups);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReaderGroupsW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListReadersA(SCARDCONTEXT hContext, LPCSTR mszGroups,
Packit Service 5a9772
                                             LPSTR mszReaders, LPDWORD pcchReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReadersA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardListReadersA(hContext, mszGroups, mszReaders, pcchReaders);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReadersA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListReadersW(SCARDCONTEXT hContext, LPCWSTR mszGroups,
Packit Service 5a9772
                                             LPWSTR mszReaders, LPDWORD pcchReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReadersW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardListReadersW(hContext, mszGroups, mszReaders, pcchReaders);
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReadersW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListCardsA(SCARDCONTEXT hContext, LPCBYTE pbAtr,
Packit Service 5a9772
                                           LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
Packit Service 5a9772
                                           CHAR* mszCards, LPDWORD pcchCards)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListCardsA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardListCardsA(hContext, pbAtr, rgquidInterfaces, cguidInterfaceCount,
Packit Service 5a9772
	                                        mszCards, pcchCards);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListCardsA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListCardsW(SCARDCONTEXT hContext, LPCBYTE pbAtr,
Packit Service 5a9772
                                           LPCGUID rgquidInterfaces, DWORD cguidInterfaceCount,
Packit Service 5a9772
                                           WCHAR* mszCards, LPDWORD pcchCards)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListCardsW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardListCardsW(hContext, pbAtr, rgquidInterfaces, cguidInterfaceCount,
Packit Service 5a9772
	                                        mszCards, pcchCards);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListCardsW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListInterfacesA(SCARDCONTEXT hContext, LPCSTR szCard,
Packit Service 5a9772
                                                LPGUID pguidInterfaces, LPDWORD pcguidInterfaces)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListInterfacesA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status =
Packit Service 5a9772
	    g_SCardApi->pfnSCardListInterfacesA(hContext, szCard, pguidInterfaces, pcguidInterfaces);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListInterfacesA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListInterfacesW(SCARDCONTEXT hContext, LPCWSTR szCard,
Packit Service 5a9772
                                                LPGUID pguidInterfaces, LPDWORD pcguidInterfaces)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListInterfacesW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status =
Packit Service 5a9772
	    g_SCardApi->pfnSCardListInterfacesW(hContext, szCard, pguidInterfaces, pcguidInterfaces);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListInterfacesW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetProviderIdA(SCARDCONTEXT hContext, LPCSTR szCard,
Packit Service 5a9772
                                               LPGUID pguidProviderId)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetProviderIdA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetProviderIdA(hContext, szCard, pguidProviderId);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetProviderIdA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetProviderIdW(SCARDCONTEXT hContext, LPCWSTR szCard,
Packit Service 5a9772
                                               LPGUID pguidProviderId)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetProviderIdW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetProviderIdW(hContext, szCard, pguidProviderId);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetProviderIdW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetCardTypeProviderNameA(SCARDCONTEXT hContext, LPCSTR szCardName,
Packit Service 5a9772
                                                         DWORD dwProviderId, CHAR* szProvider,
Packit Service 5a9772
                                                         LPDWORD pcchProvider)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetCardTypeProviderNameA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardGetCardTypeProviderNameA(hContext, szCardName, dwProviderId,
Packit Service 5a9772
	                                                      szProvider, pcchProvider);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetCardTypeProviderNameA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetCardTypeProviderNameW(SCARDCONTEXT hContext, LPCWSTR szCardName,
Packit Service 5a9772
                                                         DWORD dwProviderId, WCHAR* szProvider,
Packit Service 5a9772
                                                         LPDWORD pcchProvider)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetCardTypeProviderNameW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardGetCardTypeProviderNameW(hContext, szCardName, dwProviderId,
Packit Service 5a9772
	                                                      szProvider, pcchProvider);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetCardTypeProviderNameW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardIntroduceReaderGroupA(SCARDCONTEXT hContext, LPCSTR szGroupName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceReaderGroupA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardIntroduceReaderGroupA(hContext, szGroupName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceReaderGroupA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardIntroduceReaderGroupW(SCARDCONTEXT hContext, LPCWSTR szGroupName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceReaderGroupW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardIntroduceReaderGroupW(hContext, szGroupName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceReaderGroupW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardForgetReaderGroupA(SCARDCONTEXT hContext, LPCSTR szGroupName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetReaderGroupA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardForgetReaderGroupA(hContext, szGroupName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetReaderGroupA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardForgetReaderGroupW(SCARDCONTEXT hContext, LPCWSTR szGroupName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetReaderGroupW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardForgetReaderGroupW(hContext, szGroupName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetReaderGroupW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardIntroduceReaderA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service 5a9772
                                                 LPCSTR szDeviceName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceReaderA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardIntroduceReaderA(hContext, szReaderName, szDeviceName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceReaderA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardIntroduceReaderW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service 5a9772
                                                 LPCWSTR szDeviceName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceReaderW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardIntroduceReaderW(hContext, szReaderName, szDeviceName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceReaderW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardForgetReaderA(SCARDCONTEXT hContext, LPCSTR szReaderName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetReaderA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardForgetReaderA(hContext, szReaderName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetReaderA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardForgetReaderW(SCARDCONTEXT hContext, LPCWSTR szReaderName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetReaderW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardForgetReaderW(hContext, szReaderName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetReaderW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardAddReaderToGroupA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service 5a9772
                                                  LPCSTR szGroupName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardAddReaderToGroupA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardAddReaderToGroupA(hContext, szReaderName, szGroupName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardAddReaderToGroupA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardAddReaderToGroupW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service 5a9772
                                                  LPCWSTR szGroupName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardAddReaderToGroupW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardAddReaderToGroupW(hContext, szReaderName, szGroupName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardAddReaderToGroupW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardRemoveReaderFromGroupA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service 5a9772
                                                       LPCSTR szGroupName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardRemoveReaderFromGroupA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardRemoveReaderFromGroupA(hContext, szReaderName, szGroupName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardRemoveReaderFromGroupA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardRemoveReaderFromGroupW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service 5a9772
                                                       LPCWSTR szGroupName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardRemoveReaderFromGroupW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardRemoveReaderFromGroupW(hContext, szReaderName, szGroupName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardRemoveReaderFromGroupW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardIntroduceCardTypeA(SCARDCONTEXT hContext, LPCSTR szCardName,
Packit Service 5a9772
                                                   LPCGUID pguidPrimaryProvider,
Packit Service 5a9772
                                                   LPCGUID rgguidInterfaces, DWORD dwInterfaceCount,
Packit Service 5a9772
                                                   LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceCardTypeA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardIntroduceCardTypeA(hContext, szCardName, pguidPrimaryProvider,
Packit Service 5a9772
	                                                rgguidInterfaces, dwInterfaceCount, pbAtr,
Packit Service 5a9772
	                                                pbAtrMask, cbAtrLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceCardTypeA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardIntroduceCardTypeW(SCARDCONTEXT hContext, LPCWSTR szCardName,
Packit Service 5a9772
                                                   LPCGUID pguidPrimaryProvider,
Packit Service 5a9772
                                                   LPCGUID rgguidInterfaces, DWORD dwInterfaceCount,
Packit Service 5a9772
                                                   LPCBYTE pbAtr, LPCBYTE pbAtrMask, DWORD cbAtrLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceCardTypeW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardIntroduceCardTypeW(hContext, szCardName, pguidPrimaryProvider,
Packit Service 5a9772
	                                                rgguidInterfaces, dwInterfaceCount, pbAtr,
Packit Service 5a9772
	                                                pbAtrMask, cbAtrLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardIntroduceCardTypeW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardSetCardTypeProviderNameA(SCARDCONTEXT hContext, LPCSTR szCardName,
Packit Service 5a9772
                                                         DWORD dwProviderId, LPCSTR szProvider)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardSetCardTypeProviderNameA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardSetCardTypeProviderNameA(hContext, szCardName, dwProviderId,
Packit Service 5a9772
	                                                      szProvider);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardSetCardTypeProviderNameA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardSetCardTypeProviderNameW(SCARDCONTEXT hContext, LPCWSTR szCardName,
Packit Service 5a9772
                                                         DWORD dwProviderId, LPCWSTR szProvider)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardSetCardTypeProviderNameA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardSetCardTypeProviderNameW(hContext, szCardName, dwProviderId,
Packit Service 5a9772
	                                                      szProvider);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardSetCardTypeProviderNameW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardForgetCardTypeA(SCARDCONTEXT hContext, LPCSTR szCardName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetCardTypeA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardForgetCardTypeA(hContext, szCardName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetCardTypeA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardForgetCardTypeW(SCARDCONTEXT hContext, LPCWSTR szCardName)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetCardTypeW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardForgetCardTypeW(hContext, szCardName);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardForgetCardTypeW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardFreeMemory(SCARDCONTEXT hContext, LPVOID pvMem)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardFreeMemory { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardFreeMemory(hContext, pvMem);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardFreeMemory } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static HANDLE WINAPI Inspect_SCardAccessStartedEvent(void)
Packit 1fb8d4
{
Packit 1fb8d4
	HANDLE hEvent;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardAccessStartedEvent {");
Packit 1fb8d4
Packit 1fb8d4
	hEvent = g_SCardApi->pfnSCardAccessStartedEvent();
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardAccessStartedEvent } hEvent: %p", hEvent);
Packit 1fb8d4
Packit 1fb8d4
	return hEvent;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static void WINAPI Inspect_SCardReleaseStartedEvent(void)
Packit 1fb8d4
{
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReleaseStartedEvent {");
Packit 1fb8d4
Packit 1fb8d4
	g_SCardApi->pfnSCardReleaseStartedEvent();
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReleaseStartedEvent }");
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardLocateCardsA(SCARDCONTEXT hContext, LPCSTR mszCards,
Packit Service 5a9772
                                             LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardLocateCardsA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardLocateCardsA(hContext, mszCards, rgReaderStates, cReaders);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardLocateCardsA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardLocateCardsW(SCARDCONTEXT hContext, LPCWSTR mszCards,
Packit Service 5a9772
                                             LPSCARD_READERSTATEW rgReaderStates, DWORD cReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardLocateCardsW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardLocateCardsW(hContext, mszCards, rgReaderStates, cReaders);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardLocateCardsW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardLocateCardsByATRA(SCARDCONTEXT hContext, LPSCARD_ATRMASK rgAtrMasks,
Packit Service 5a9772
                                                  DWORD cAtrs, LPSCARD_READERSTATEA rgReaderStates,
Packit Service 5a9772
                                                  DWORD cReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardLocateCardsByATRA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardLocateCardsByATRA(hContext, rgAtrMasks, cAtrs, rgReaderStates,
Packit Service 5a9772
	                                               cReaders);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardLocateCardsByATRA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardLocateCardsByATRW(SCARDCONTEXT hContext, LPSCARD_ATRMASK rgAtrMasks,
Packit Service 5a9772
                                                  DWORD cAtrs, LPSCARD_READERSTATEW rgReaderStates,
Packit Service 5a9772
                                                  DWORD cReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardLocateCardsByATRW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardLocateCardsByATRW(hContext, rgAtrMasks, cAtrs, rgReaderStates,
Packit Service 5a9772
	                                               cReaders);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardLocateCardsByATRW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetStatusChangeA(SCARDCONTEXT hContext, DWORD dwTimeout,
Packit Service 5a9772
                                                 LPSCARD_READERSTATEA rgReaderStates,
Packit Service 5a9772
                                                 DWORD cReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetStatusChangeA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetStatusChangeA(hContext, dwTimeout, rgReaderStates, cReaders);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetStatusChangeA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetStatusChangeW(SCARDCONTEXT hContext, DWORD dwTimeout,
Packit Service 5a9772
                                                 LPSCARD_READERSTATEW rgReaderStates,
Packit Service 5a9772
                                                 DWORD cReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetStatusChangeW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetStatusChangeW(hContext, dwTimeout, rgReaderStates, cReaders);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetStatusChangeW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardCancel(SCARDCONTEXT hContext)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardCancel { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardCancel(hContext);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardCancel } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardConnectA(SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode,
Packit Service 5a9772
                                         DWORD dwPreferredProtocols, LPSCARDHANDLE phCard,
Packit Service 5a9772
                                         LPDWORD pdwActiveProtocol)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardConnectA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardConnectA(hContext, szReader, dwShareMode, dwPreferredProtocols,
Packit Service 5a9772
	                                      phCard, pdwActiveProtocol);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardConnectA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardConnectW(SCARDCONTEXT hContext, LPCWSTR szReader, DWORD dwShareMode,
Packit Service 5a9772
                                         DWORD dwPreferredProtocols, LPSCARDHANDLE phCard,
Packit Service 5a9772
                                         LPDWORD pdwActiveProtocol)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardConnectW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardConnectW(hContext, szReader, dwShareMode, dwPreferredProtocols,
Packit Service 5a9772
	                                      phCard, pdwActiveProtocol);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardConnectW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardReconnect(SCARDHANDLE hCard, DWORD dwShareMode,
Packit Service 5a9772
                                          DWORD dwPreferredProtocols, DWORD dwInitialization,
Packit Service 5a9772
                                          LPDWORD pdwActiveProtocol)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReconnect { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardReconnect(hCard, dwShareMode, dwPreferredProtocols,
Packit Service 5a9772
	                                       dwInitialization, pdwActiveProtocol);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReconnect } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardDisconnect { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardDisconnect(hCard, dwDisposition);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardDisconnect } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardBeginTransaction(SCARDHANDLE hCard)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardBeginTransaction { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardBeginTransaction(hCard);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardBeginTransaction } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardEndTransaction { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardEndTransaction(hCard, dwDisposition);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardEndTransaction } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardCancelTransaction(SCARDHANDLE hCard)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardCancelTransaction { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardCancelTransaction(hCard);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardCancelTransaction } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardState(SCARDHANDLE hCard, LPDWORD pdwState, LPDWORD pdwProtocol,
Packit Service 5a9772
                                      LPBYTE pbAtr, LPDWORD pcbAtrLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardState { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardState(hCard, pdwState, pdwProtocol, pbAtr, pcbAtrLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardState } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardStatusA(SCARDHANDLE hCard, LPSTR mszReaderNames,
Packit Service 5a9772
                                        LPDWORD pcchReaderLen, LPDWORD pdwState,
Packit Service 5a9772
                                        LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardStatusA { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardStatusA(hCard, mszReaderNames, pcchReaderLen, pdwState,
Packit Service 5a9772
	                                     pdwProtocol, pbAtr, pcbAtrLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardStatusA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardStatusW(SCARDHANDLE hCard, LPWSTR mszReaderNames,
Packit Service 5a9772
                                        LPDWORD pcchReaderLen, LPDWORD pdwState,
Packit Service 5a9772
                                        LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardStatusW { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardStatusW(hCard, mszReaderNames, pcchReaderLen, pdwState,
Packit Service 5a9772
	                                     pdwProtocol, pbAtr, pcbAtrLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardStatusW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardTransmit(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci,
Packit Service 5a9772
                                         LPCBYTE pbSendBuffer, DWORD cbSendLength,
Packit Service 5a9772
                                         LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer,
Packit Service 5a9772
                                         LPDWORD pcbRecvLength)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardTransmit { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardTransmit(hCard, pioSendPci, pbSendBuffer, cbSendLength, pioRecvPci,
Packit Service 5a9772
	                                      pbRecvBuffer, pcbRecvLength);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardTransmit } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetTransmitCount(SCARDHANDLE hCard, LPDWORD pcTransmitCount)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetTransmitCount { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetTransmitCount(hCard, pcTransmitCount);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetTransmitCount } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardControl(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID lpInBuffer,
Packit Service 5a9772
                                        DWORD cbInBufferSize, LPVOID lpOutBuffer,
Packit Service 5a9772
                                        DWORD cbOutBufferSize, LPDWORD lpBytesReturned)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardControl { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardControl(hCard, dwControlCode, lpInBuffer, cbInBufferSize,
Packit Service 5a9772
	                                     lpOutBuffer, cbOutBufferSize, lpBytesReturned);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardControl } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr,
Packit Service 5a9772
                                          LPDWORD pcbAttrLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetAttrib { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetAttrib(hCard, dwAttrId, pbAttr, pcbAttrLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetAttrib } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr,
Packit Service 5a9772
                                          DWORD cbAttrLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardSetAttrib { hCard: %p", (void*)hCard);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardSetAttrib(hCard, dwAttrId, pbAttr, cbAttrLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardSetAttrib } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardUIDlgSelectCardA(LPOPENCARDNAMEA_EX pDlgStruc)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardUIDlgSelectCardA {");
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardUIDlgSelectCardA(pDlgStruc);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardUIDlgSelectCardA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardUIDlgSelectCardW(LPOPENCARDNAMEW_EX pDlgStruc)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardUIDlgSelectCardW {");
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardUIDlgSelectCardW(pDlgStruc);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardUIDlgSelectCardW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_GetOpenCardNameA(LPOPENCARDNAMEA pDlgStruc)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "GetOpenCardNameA {");
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnGetOpenCardNameA(pDlgStruc);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "GetOpenCardNameA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_GetOpenCardNameW(LPOPENCARDNAMEW pDlgStruc)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "GetOpenCardNameW {");
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnGetOpenCardNameW(pDlgStruc);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "GetOpenCardNameW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardDlgExtendedError(void)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardDlgExtendedError {");
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardDlgExtendedError();
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardDlgExtendedError } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardReadCacheA(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service 5a9772
                                           DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data,
Packit Service 5a9772
                                           DWORD* DataLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReadCacheA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardReadCacheA(hContext, CardIdentifier, FreshnessCounter, LookupName,
Packit Service 5a9772
	                                        Data, DataLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReadCacheA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardReadCacheW(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service 5a9772
                                           DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data,
Packit Service 5a9772
                                           DWORD* DataLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReadCacheW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardReadCacheW(hContext, CardIdentifier, FreshnessCounter, LookupName,
Packit Service 5a9772
	                                        Data, DataLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardReadCacheW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardWriteCacheA(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service 5a9772
                                            DWORD FreshnessCounter, LPSTR LookupName, PBYTE Data,
Packit Service 5a9772
                                            DWORD DataLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardWriteCacheA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardWriteCacheA(hContext, CardIdentifier, FreshnessCounter, LookupName,
Packit Service 5a9772
	                                         Data, DataLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardWriteCacheA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardWriteCacheW(SCARDCONTEXT hContext, UUID* CardIdentifier,
Packit Service 5a9772
                                            DWORD FreshnessCounter, LPWSTR LookupName, PBYTE Data,
Packit Service 5a9772
                                            DWORD DataLen)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardWriteCacheW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardWriteCacheW(hContext, CardIdentifier, FreshnessCounter, LookupName,
Packit Service 5a9772
	                                         Data, DataLen);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardWriteCacheW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetReaderIconA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service 5a9772
                                               LPBYTE pbIcon, LPDWORD pcbIcon)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetReaderIconA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetReaderIconA(hContext, szReaderName, pbIcon, pcbIcon);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetReaderIconA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetReaderIconW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service 5a9772
                                               LPBYTE pbIcon, LPDWORD pcbIcon)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetReaderIconW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetReaderIconW(hContext, szReaderName, pbIcon, pcbIcon);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetReaderIconW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetDeviceTypeIdA(SCARDCONTEXT hContext, LPCSTR szReaderName,
Packit Service 5a9772
                                                 LPDWORD pdwDeviceTypeId)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetDeviceTypeIdA { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetDeviceTypeIdA(hContext, szReaderName, pdwDeviceTypeId);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetDeviceTypeIdA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetDeviceTypeIdW(SCARDCONTEXT hContext, LPCWSTR szReaderName,
Packit Service 5a9772
                                                 LPDWORD pdwDeviceTypeId)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetDeviceTypeIdW { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardGetDeviceTypeIdW(hContext, szReaderName, pdwDeviceTypeId);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetDeviceTypeIdW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetReaderDeviceInstanceIdA(SCARDCONTEXT hContext,
Packit Service 5a9772
                                                           LPCSTR szReaderName,
Packit Service 5a9772
                                                           LPSTR szDeviceInstanceId,
Packit Service 5a9772
                                                           LPDWORD pcchDeviceInstanceId)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetReaderDeviceInstanceIdA { hContext: %p",
Packit Service 5a9772
	           (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardGetReaderDeviceInstanceIdA(
Packit Service 5a9772
	    hContext, szReaderName, szDeviceInstanceId, pcchDeviceInstanceId);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetReaderDeviceInstanceIdA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardGetReaderDeviceInstanceIdW(SCARDCONTEXT hContext,
Packit Service 5a9772
                                                           LPCWSTR szReaderName,
Packit Service 5a9772
                                                           LPWSTR szDeviceInstanceId,
Packit Service 5a9772
                                                           LPDWORD pcchDeviceInstanceId)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetReaderDeviceInstanceIdW { hContext: %p",
Packit Service 5a9772
	           (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardGetReaderDeviceInstanceIdW(
Packit Service 5a9772
	    hContext, szReaderName, szDeviceInstanceId, pcchDeviceInstanceId);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardGetReaderDeviceInstanceIdW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListReadersWithDeviceInstanceIdA(SCARDCONTEXT hContext,
Packit Service 5a9772
                                                                 LPCSTR szDeviceInstanceId,
Packit Service 5a9772
                                                                 LPSTR mszReaders,
Packit Service 5a9772
                                                                 LPDWORD pcchReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReadersWithDeviceInstanceIdA { hContext: %p",
Packit Service 5a9772
	           (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardListReadersWithDeviceInstanceIdA(hContext, szDeviceInstanceId,
Packit Service 5a9772
	                                                              mszReaders, pcchReaders);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel,
Packit Service 5a9772
	           "SCardListReadersWithDeviceInstanceIdA } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardListReadersWithDeviceInstanceIdW(SCARDCONTEXT hContext,
Packit Service 5a9772
                                                                 LPCWSTR szDeviceInstanceId,
Packit Service 5a9772
                                                                 LPWSTR mszReaders,
Packit Service 5a9772
                                                                 LPDWORD pcchReaders)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardListReadersWithDeviceInstanceIdW { hContext: %p",
Packit Service 5a9772
	           (void*)hContext);
Packit 1fb8d4
Packit Service 5a9772
	status = g_SCardApi->pfnSCardListReadersWithDeviceInstanceIdW(hContext, szDeviceInstanceId,
Packit Service 5a9772
	                                                              mszReaders, pcchReaders);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel,
Packit Service 5a9772
	           "SCardListReadersWithDeviceInstanceIdW } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
static LONG WINAPI Inspect_SCardAudit(SCARDCONTEXT hContext, DWORD dwEvent)
Packit 1fb8d4
{
Packit 1fb8d4
	LONG status;
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardAudit { hContext: %p", (void*)hContext);
Packit 1fb8d4
Packit 1fb8d4
	status = g_SCardApi->pfnSCardAudit(hContext, dwEvent);
Packit 1fb8d4
Packit Service 5a9772
	WLog_Print(g_Log, g_LogLevel, "SCardAudit } status: %s (0x%08" PRIX32 ")",
Packit Service 5a9772
	           SCardGetErrorString(status), status);
Packit 1fb8d4
Packit 1fb8d4
	return status;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
/**
Packit 1fb8d4
 * Extended API
Packit 1fb8d4
 */
Packit 1fb8d4
Packit Service 5a9772
static const SCardApiFunctionTable Inspect_SCardApiFunctionTable = {
Packit 1fb8d4
	0, /* dwVersion */
Packit 1fb8d4
	0, /* dwFlags */
Packit 1fb8d4
Packit Service 5a9772
	Inspect_SCardEstablishContext,                 /* SCardEstablishContext */
Packit Service 5a9772
	Inspect_SCardReleaseContext,                   /* SCardReleaseContext */
Packit Service 5a9772
	Inspect_SCardIsValidContext,                   /* SCardIsValidContext */
Packit Service 5a9772
	Inspect_SCardListReaderGroupsA,                /* SCardListReaderGroupsA */
Packit Service 5a9772
	Inspect_SCardListReaderGroupsW,                /* SCardListReaderGroupsW */
Packit Service 5a9772
	Inspect_SCardListReadersA,                     /* SCardListReadersA */
Packit Service 5a9772
	Inspect_SCardListReadersW,                     /* SCardListReadersW */
Packit Service 5a9772
	Inspect_SCardListCardsA,                       /* SCardListCardsA */
Packit Service 5a9772
	Inspect_SCardListCardsW,                       /* SCardListCardsW */
Packit Service 5a9772
	Inspect_SCardListInterfacesA,                  /* SCardListInterfacesA */
Packit Service 5a9772
	Inspect_SCardListInterfacesW,                  /* SCardListInterfacesW */
Packit Service 5a9772
	Inspect_SCardGetProviderIdA,                   /* SCardGetProviderIdA */
Packit Service 5a9772
	Inspect_SCardGetProviderIdW,                   /* SCardGetProviderIdW */
Packit Service 5a9772
	Inspect_SCardGetCardTypeProviderNameA,         /* SCardGetCardTypeProviderNameA */
Packit Service 5a9772
	Inspect_SCardGetCardTypeProviderNameW,         /* SCardGetCardTypeProviderNameW */
Packit Service 5a9772
	Inspect_SCardIntroduceReaderGroupA,            /* SCardIntroduceReaderGroupA */
Packit Service 5a9772
	Inspect_SCardIntroduceReaderGroupW,            /* SCardIntroduceReaderGroupW */
Packit Service 5a9772
	Inspect_SCardForgetReaderGroupA,               /* SCardForgetReaderGroupA */
Packit Service 5a9772
	Inspect_SCardForgetReaderGroupW,               /* SCardForgetReaderGroupW */
Packit Service 5a9772
	Inspect_SCardIntroduceReaderA,                 /* SCardIntroduceReaderA */
Packit Service 5a9772
	Inspect_SCardIntroduceReaderW,                 /* SCardIntroduceReaderW */
Packit Service 5a9772
	Inspect_SCardForgetReaderA,                    /* SCardForgetReaderA */
Packit Service 5a9772
	Inspect_SCardForgetReaderW,                    /* SCardForgetReaderW */
Packit Service 5a9772
	Inspect_SCardAddReaderToGroupA,                /* SCardAddReaderToGroupA */
Packit Service 5a9772
	Inspect_SCardAddReaderToGroupW,                /* SCardAddReaderToGroupW */
Packit Service 5a9772
	Inspect_SCardRemoveReaderFromGroupA,           /* SCardRemoveReaderFromGroupA */
Packit Service 5a9772
	Inspect_SCardRemoveReaderFromGroupW,           /* SCardRemoveReaderFromGroupW */
Packit Service 5a9772
	Inspect_SCardIntroduceCardTypeA,               /* SCardIntroduceCardTypeA */
Packit Service 5a9772
	Inspect_SCardIntroduceCardTypeW,               /* SCardIntroduceCardTypeW */
Packit Service 5a9772
	Inspect_SCardSetCardTypeProviderNameA,         /* SCardSetCardTypeProviderNameA */
Packit Service 5a9772
	Inspect_SCardSetCardTypeProviderNameW,         /* SCardSetCardTypeProviderNameW */
Packit Service 5a9772
	Inspect_SCardForgetCardTypeA,                  /* SCardForgetCardTypeA */
Packit Service 5a9772
	Inspect_SCardForgetCardTypeW,                  /* SCardForgetCardTypeW */
Packit Service 5a9772
	Inspect_SCardFreeMemory,                       /* SCardFreeMemory */
Packit Service 5a9772
	Inspect_SCardAccessStartedEvent,               /* SCardAccessStartedEvent */
Packit Service 5a9772
	Inspect_SCardReleaseStartedEvent,              /* SCardReleaseStartedEvent */
Packit Service 5a9772
	Inspect_SCardLocateCardsA,                     /* SCardLocateCardsA */
Packit Service 5a9772
	Inspect_SCardLocateCardsW,                     /* SCardLocateCardsW */
Packit Service 5a9772
	Inspect_SCardLocateCardsByATRA,                /* SCardLocateCardsByATRA */
Packit Service 5a9772
	Inspect_SCardLocateCardsByATRW,                /* SCardLocateCardsByATRW */
Packit Service 5a9772
	Inspect_SCardGetStatusChangeA,                 /* SCardGetStatusChangeA */
Packit Service 5a9772
	Inspect_SCardGetStatusChangeW,                 /* SCardGetStatusChangeW */
Packit Service 5a9772
	Inspect_SCardCancel,                           /* SCardCancel */
Packit Service 5a9772
	Inspect_SCardConnectA,                         /* SCardConnectA */
Packit Service 5a9772
	Inspect_SCardConnectW,                         /* SCardConnectW */
Packit Service 5a9772
	Inspect_SCardReconnect,                        /* SCardReconnect */
Packit Service 5a9772
	Inspect_SCardDisconnect,                       /* SCardDisconnect */
Packit Service 5a9772
	Inspect_SCardBeginTransaction,                 /* SCardBeginTransaction */
Packit Service 5a9772
	Inspect_SCardEndTransaction,                   /* SCardEndTransaction */
Packit Service 5a9772
	Inspect_SCardCancelTransaction,                /* SCardCancelTransaction */
Packit Service 5a9772
	Inspect_SCardState,                            /* SCardState */
Packit Service 5a9772
	Inspect_SCardStatusA,                          /* SCardStatusA */
Packit Service 5a9772
	Inspect_SCardStatusW,                          /* SCardStatusW */
Packit Service 5a9772
	Inspect_SCardTransmit,                         /* SCardTransmit */
Packit Service 5a9772
	Inspect_SCardGetTransmitCount,                 /* SCardGetTransmitCount */
Packit Service 5a9772
	Inspect_SCardControl,                          /* SCardControl */
Packit Service 5a9772
	Inspect_SCardGetAttrib,                        /* SCardGetAttrib */
Packit Service 5a9772
	Inspect_SCardSetAttrib,                        /* SCardSetAttrib */
Packit Service 5a9772
	Inspect_SCardUIDlgSelectCardA,                 /* SCardUIDlgSelectCardA */
Packit Service 5a9772
	Inspect_SCardUIDlgSelectCardW,                 /* SCardUIDlgSelectCardW */
Packit Service 5a9772
	Inspect_GetOpenCardNameA,                      /* GetOpenCardNameA */
Packit Service 5a9772
	Inspect_GetOpenCardNameW,                      /* GetOpenCardNameW */
Packit Service 5a9772
	Inspect_SCardDlgExtendedError,                 /* SCardDlgExtendedError */
Packit Service 5a9772
	Inspect_SCardReadCacheA,                       /* SCardReadCacheA */
Packit Service 5a9772
	Inspect_SCardReadCacheW,                       /* SCardReadCacheW */
Packit Service 5a9772
	Inspect_SCardWriteCacheA,                      /* SCardWriteCacheA */
Packit Service 5a9772
	Inspect_SCardWriteCacheW,                      /* SCardWriteCacheW */
Packit Service 5a9772
	Inspect_SCardGetReaderIconA,                   /* SCardGetReaderIconA */
Packit Service 5a9772
	Inspect_SCardGetReaderIconW,                   /* SCardGetReaderIconW */
Packit Service 5a9772
	Inspect_SCardGetDeviceTypeIdA,                 /* SCardGetDeviceTypeIdA */
Packit Service 5a9772
	Inspect_SCardGetDeviceTypeIdW,                 /* SCardGetDeviceTypeIdW */
Packit Service 5a9772
	Inspect_SCardGetReaderDeviceInstanceIdA,       /* SCardGetReaderDeviceInstanceIdA */
Packit Service 5a9772
	Inspect_SCardGetReaderDeviceInstanceIdW,       /* SCardGetReaderDeviceInstanceIdW */
Packit 1fb8d4
	Inspect_SCardListReadersWithDeviceInstanceIdA, /* SCardListReadersWithDeviceInstanceIdA */
Packit 1fb8d4
	Inspect_SCardListReadersWithDeviceInstanceIdW, /* SCardListReadersWithDeviceInstanceIdW */
Packit Service 5a9772
	Inspect_SCardAudit                             /* SCardAudit */
Packit 1fb8d4
};
Packit 1fb8d4
Packit Service 5a9772
static void Inspect_InitLog(void)
Packit 1fb8d4
{
Packit 1fb8d4
	if (g_Log)
Packit 1fb8d4
		return;
Packit 1fb8d4
Packit 1fb8d4
	if (!(g_Log = WLog_Get("WinSCard")))
Packit 1fb8d4
		return;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
const SCardApiFunctionTable* Inspect_RegisterSCardApi(const SCardApiFunctionTable* pSCardApi)
Packit 1fb8d4
{
Packit 1fb8d4
	g_SCardApi = pSCardApi;
Packit 1fb8d4
Packit 1fb8d4
	Inspect_InitLog();
Packit 1fb8d4
Packit 1fb8d4
	return &Inspect_SCardApiFunctionTable;
Packit 1fb8d4
}