windows-nt/Source/XPSP1/NT/termsrv/common/license/inc/tlsapi.h
2020-09-26 16:20:57 +08:00

444 lines
9.3 KiB
C

//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996-1998
//
// File: tlsapi.h
//
// Contents:
//
// History: 12-09-97 HueiWang Created
//
//---------------------------------------------------------------------------
#ifndef __TLSAPI_H__
#define __TLSAPI_H__
#include "tlsdef.h"
#ifndef WINAPI
#define WINAPI __stdcall
#endif
typedef BYTE* PBYTE;
typedef DWORD* PDWORD;
typedef PBYTE LPBYTE;
typedef PDWORD LPDWORD;
typedef UCHAR* PUCHAR;
//----------------------------------------------------------------------------------
// IssuedLicense related structure
//
typedef struct __LSLicense {
DWORD dwVersion;
DWORD dwLicenseId; // internal tracking number
DWORD dwKeyPackId; // join with License Pack
TCHAR szHWID[GUID_MAX_SIZE];
TCHAR szMachineName[MAXCOMPUTERNAMELENGTH];
TCHAR szUserName[MAXUSERNAMELENGTH];
DWORD dwCertSerialLicense;
DWORD dwLicenseSerialNumber;
DWORD ftIssueDate;
DWORD ftExpireDate;
UCHAR ucLicenseStatus;
} LSLicense, *LPLSLicense;
typedef LSLicense LSLicenseSearchParm;
typedef LSLicenseSearchParm* LPLSLicenseSearchParm;
typedef struct __LSLicenseEx {
DWORD dwVersion;
DWORD dwLicenseId; // internal tracking number
DWORD dwKeyPackId; // join with License Pack
TCHAR szHWID[GUID_MAX_SIZE];
TCHAR szMachineName[MAXCOMPUTERNAMELENGTH];
TCHAR szUserName[MAXUSERNAMELENGTH];
DWORD dwCertSerialLicense;
DWORD dwLicenseSerialNumber;
DWORD ftIssueDate;
DWORD ftExpireDate;
UCHAR ucLicenseStatus;
DWORD dwQuantity;
} LSLicenseEx, *LPLSLicenseEx;
//----------------------------------------------------------------------------------
// Table License Key Pack related structure
//
typedef struct __LSKeyPack {
DWORD dwVersion;
UCHAR ucKeyPackType;
TCHAR szCompanyName[LSERVER_MAX_STRING_SIZE+1];
TCHAR szKeyPackId[LSERVER_MAX_STRING_SIZE+1];
TCHAR szProductName[LSERVER_MAX_STRING_SIZE+1];
TCHAR szProductId[LSERVER_MAX_STRING_SIZE+1];
TCHAR szProductDesc[LSERVER_MAX_STRING_SIZE+1];
WORD wMajorVersion;
WORD wMinorVersion;
DWORD dwPlatformType;
UCHAR ucLicenseType;
DWORD dwLanguageId;
UCHAR ucChannelOfPurchase;
TCHAR szBeginSerialNumber[LSERVER_MAX_STRING_SIZE+1];
DWORD dwTotalLicenseInKeyPack;
DWORD dwProductFlags;
DWORD dwKeyPackId;
UCHAR ucKeyPackStatus;
DWORD dwActivateDate;
DWORD dwExpirationDate;
DWORD dwNumberOfLicenses;
} LSKeyPack, *LPLSKeyPack;
typedef LSKeyPack LSKeyPackSearchParm;
typedef LSKeyPackSearchParm* LPLSKeyPackSearchParm;
//---------------------------------------------------------------------------
typedef struct {
DWORD dwLow;
DWORD dwHigh;
} LSRange, *LPLSRange, *PLSRange;
typedef HANDLE TLS_HANDLE;
typedef DWORD CHALLENGE_CONTEXT;
typedef CHALLENGE_CONTEXT* PCHALLENGE_CONTEXT;
typedef BOOL (* TLSENUMERATECALLBACK)(TLS_HANDLE hBinding, LPCTSTR pszServer, HANDLE dwUserData);
#ifdef __cplusplus
extern "C" {
#endif
HRESULT FindEnterpriseServer(TLS_HANDLE *phBinding);
HRESULT GetAllEnterpriseServers(WCHAR ***ppszServers, DWORD *pdwCount);
// void *MIDL_user_allocate(DWORD size);
// void MIDL_user_free(void *pointer);
// void * __stdcall MIDL_user_allocate(DWORD);
// void __stdcall MIDL_user_free( void * );
DWORD WINAPI
EnumerateTlsServer(
TLSENUMERATECALLBACK fCallBack,
HANDLE dwUserData,
DWORD dwTimeOut,
BOOL fRegOnly
);
TLS_HANDLE WINAPI
TLSConnectToAnyLsServer(
DWORD dwTimeout
);
TLS_HANDLE WINAPI
TLSConnectToLsServer(
LPTSTR szLsServer
);
void WINAPI
TLSDisconnectFromServer(
TLS_HANDLE hHandle
);
DWORD WINAPI
TLSGetVersion (
TLS_HANDLE hHandle,
PDWORD pdwVersion
);
DWORD WINAPI
TLSSendServerCertificate(
TLS_HANDLE hHandle,
DWORD cbCert,
PBYTE pbCert,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSGetServerName(
TLS_HANDLE hHandle,
LPTSTR pszMachineName,
PDWORD pcbSize,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSGetServerScope(
TLS_HANDLE hHandle,
LPTSTR pszScopeName,
PDWORD pcbSize,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSGetInfo(
TLS_HANDLE hHandle,
DWORD cbHSCert,
PBYTE pHSCert,
PDWORD pcbLSCert,
PBYTE* ppbLSCert,
DWORD* pcbLSSecretKey,
PBYTE* ppbLSSecretKey,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSIssuePlatformChallenge(
TLS_HANDLE hHandle,
DWORD dwClientInfo,
PCHALLENGE_CONTEXT pChallengeContext,
PDWORD pcbChallengeData,
PBYTE* pChallengeData,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSIssueNewLicense(
TLS_HANDLE hHandle,
CHALLENGE_CONTEXT ChallengeContext,
LICENSEREQUEST* pRequest,
LPTSTR pszMachineName,
LPTSTR pszUserName,
DWORD cbChallengeResponse,
PBYTE pbChallengeResponse,
BOOL bAcceptTemporaryLicense,
PDWORD pcbLicense,
PBYTE* ppbLicense,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSIssueNewLicenseEx(
TLS_HANDLE hHandle,
PDWORD pSupportFlags,
CHALLENGE_CONTEXT ChallengeContext,
LICENSEREQUEST *pRequest,
LPTSTR pMachineName,
LPTSTR pUserName,
DWORD cbChallengeResponse,
PBYTE pbChallengeResponse,
BOOL bAcceptTemporaryLicense,
DWORD dwQuantity,
PDWORD pcbLicense,
PBYTE* ppbLicense,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSIssueNewLicenseExEx(
TLS_HANDLE hHandle,
PDWORD pSupportFlags,
CHALLENGE_CONTEXT ChallengeContext,
LICENSEREQUEST *pRequest,
LPTSTR pMachineName,
LPTSTR pUserName,
DWORD cbChallengeResponse,
PBYTE pbChallengeResponse,
BOOL bAcceptTemporaryLicense,
BOOL bAcceptFewerLicenses,
DWORD *pdwQuantity,
PDWORD pcbLicense,
PBYTE* ppbLicense,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSUpgradeLicense(
TLS_HANDLE hHandle,
LICENSEREQUEST* pRequest,
CHALLENGE_CONTEXT ChallengeContext,
DWORD cbChallengeResponse,
PBYTE pbChallengeResponse,
DWORD cbOldLicense,
PBYTE pbOldLicense,
PDWORD pcbNewLicense,
PBYTE* ppbNewLicense,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSUpgradeLicenseEx(
TLS_HANDLE hHandle,
PDWORD pSupportFlags,
LICENSEREQUEST *pRequest,
CHALLENGE_CONTEXT ChallengeContext,
DWORD cbChallengeResponse,
PBYTE pbChallengeResponse,
DWORD cbOldLicense,
PBYTE pbOldLicense,
DWORD dwQuantity,
PDWORD pcbNewLicense,
PBYTE* ppbNewLicense,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSAllocateConcurrentLicense(
TLS_HANDLE hHandle,
LPTSTR pszHydraServer,
LICENSEREQUEST* pRequest,
LONG* dwQuantity,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSGetLastError(
TLS_HANDLE hHandle,
DWORD cbBufferSize,
LPTSTR pszBuffer,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSKeyPackEnumBegin(
TLS_HANDLE hHandle,
DWORD dwSearchParm,
BOOL bMatchAll,
LPLSKeyPackSearchParm lpSearchParm,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSKeyPackEnumNext(
TLS_HANDLE hHandle,
LPLSKeyPack lpKeyPack,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSKeyPackEnumEnd(
TLS_HANDLE hHandle,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSLicenseEnumBegin(
TLS_HANDLE hHandle,
DWORD dwSearchParm,
BOOL bMatchAll,
LPLSLicenseSearchParm lpSearchParm,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSLicenseEnumNext(
TLS_HANDLE hHandle,
LPLSLicense lpLicense,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSLicenseEnumNextEx(
TLS_HANDLE hHandle,
LPLSLicenseEx lpLicense,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSLicenseEnumEnd(
TLS_HANDLE hHandle,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSGetAvailableLicenses(
TLS_HANDLE hHandle,
DWORD dwSearchParm,
LPLSKeyPack lplsKeyPack,
LPDWORD lpdwAvail,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSGetRevokeKeyPackList(
TLS_HANDLE hHandle,
PDWORD pcbNumberOfRange,
LPLSRange* ppRevokeRange,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSGetRevokeLicenseList(
TLS_HANDLE hHandle,
PDWORD pcbNumberOfRange,
LPLSRange* ppRevokeRange,
PDWORD pdwErrCode
);
LICENSE_STATUS
TLSGetTSCertificate(
CERT_TYPE CertType,
LPBYTE *ppbCertificate,
LPDWORD pcbCertificate);
LICENSE_STATUS
TLSFreeTSCertificate(
LPBYTE pbCertificate);
DWORD WINAPI
TLSInit();
DWORD WINAPI
TLSStartDiscovery();
DWORD WINAPI
TLSStopDiscovery();
void WINAPI
TLSShutdown();
DWORD WINAPI
TLSInDomain(
BOOL *pfInDomain,
LPWSTR *szDomain);
DWORD WINAPI
TLSMarkLicense(
TLS_HANDLE hHandle,
UCHAR ucFlags,
DWORD cbLicense,
PBYTE pLicense,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSCheckLicenseMark(
TLS_HANDLE hHandle,
DWORD cbLicense,
PBYTE pLicense,
PUCHAR pucFlags,
PDWORD pdwErrCode
);
DWORD WINAPI
TLSGetSupportFlags(
TLS_HANDLE hHandle,
DWORD *pdwSupportFlags
);
DWORD WINAPI
TLSGetServerNameEx(
TLS_HANDLE hHandle,
LPTSTR pszMachineName,
PDWORD pcbSize,
PDWORD pdwErrCode
);
#ifdef __cplusplus
}
#endif
#endif