windows-nt/Source/XPSP1/NT/ds/security/csps/wfsccsp/carddefs.h
2020-09-26 16:20:57 +08:00

107 lines
2.4 KiB
C

#ifndef _CARDDEFS_H_
#define _CARDDEFS_H_
#include <windows.h>
#define cchCARD_SERIAL_NUMBER 40
#define cchCARD_MAX_FILENAME 40
//
// Type: PFN_CSP_REQUEST_PIN
//
// Purpose: This callback is used by the Card Specific functions
// to trigger the CSP to display UI to request that the user enter
// a Pin.
//
// The pvCspRequestData pointer is CSP context information, opaque to
// the Card Specific functions. It should be passed directly from
// the CARD_DATA struct into this function.
//
typedef DWORD (*PFN_CSP_REQUEST_PIN)(IN PVOID pvCspRequestData, OUT LPSTR pszPin, OUT PDWORD pcbPin);
//
// Type: CARD_DATA
//
// Purpose: This struct contains card-specifc context information
// and is passed to each of the Card Specific functions.
//
#define CARD_DATA_CURRENT_VER 1
typedef struct _CARD_DATA
{
DWORD dwVersion;
PVOID pvVendorSpecific;
PINCACHE_HANDLE hPinCache;
SCARDHANDLE hScard;
//PVOID pvCspRequestData;
//PFN_CSP_REQUEST_PIN pfnCspRequestPin;
} CARD_DATA, *PCARD_DATA;
//
// Type: CONTAINER_INFO
//
// Purpose: This is the struct initialized in a call
// to CardGetContainerInfo.
//
#define CONTAINER_INFO_CURRENT_VER 1
typedef struct _CONTAINER_INFO
{
DWORD dwVersion;
DWORD dwKeySpec;
DWORD dwKeySize;
// In the current architecture, this member is only interesting
// in cache memory, not on the card, since we won't create
// containers without cards.
BOOL fHasAKey;
} CONTAINER_INFO, *PCONTAINER_INFO;
//
// Type: CARD_CAPABILITIES
//
// Purpose: This is the struct initialized in a call
// to CardQueryCapabilities.
//
#define CARD_CAPABILITIES_CURRENT_VER 1
typedef struct _CARD_CAPABILITIES
{
DWORD dwVersion;
BOOL fCompression;
BOOL fFileChecksum;
} CARD_CAPABILITIES, *PCARD_CAPABILITIES;
//
// Type: CARD_FREE_SPACE
//
// Purpose: This is the struct initialized in a call
// to CardQueryFreeSpace.
//
#define CARD_FREE_SPACE_CURRENT_VER 1
typedef struct _CARD_FREE_SPACE
{
DWORD dwVersion;
DWORD cbAvailableBytes;
DWORD cbAvailableContainers;
} CARD_FREE_SPACE, *PCARD_FREE_SPACE;
//
// Type: CARD_KEY_SIZES
//
// Purpose: This is the struct initialized in a call
// to CardQueryKeySizes.
//
#define CARD_KEY_SIZES_CURRENT_VER 1
typedef struct _CARD_KEY_SIZES
{
DWORD dwVersion;
DWORD dwMin;
DWORD dwMax;
DWORD dwDef;
DWORD dwKeySizeInc;
} CARD_KEY_SIZES, *PCARD_KEY_SIZES;
#endif