blob: e3b2408cd2663f9abd39a1a4e9bb34f85a64f339 [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_TBS
#define _INC_TBS
#if (_WIN32_WINNT >= 0x0600)
#ifdef __cplusplus
extern "C" {
#endif
/* TODO: Not clear, but RESULT types have normally LONG type. */
typedef UINT32 TBS_RESULT;
typedef enum _TBS_COMMAND_LOCALITY {
TBS_COMMAND_LOCALITY_ZERO = 0,
TBS_COMMAND_LOCALITY_ONE,
TBS_COMMAND_LOCALITY_TWO,
TBS_COMMAND_LOCALITY_THREE,
TBS_COMMAND_LOCALITY_FOUR
} TBS_COMMAND_LOCALITY;
typedef enum _TBS_COMMAND_PRIORITY {
TBS_COMMAND_PRIORITY_LOW = 100,
TBS_COMMAND_PRIORITY_NORMAL = 200,
TBS_COMMAND_PRIORITY_HIGH = 300,
TBS_COMMAND_PRIORITY_SYSTEM = 400,
TBS_COMMAND_PRIORITY_MAX = 0x80000000
} TBS_COMMAND_PRIORITY;
typedef struct _TBS_CONTEXT_PARAMS {
UINT32 version;
} TBS_CONTEXT_PARAMS;
typedef LPVOID TBS_HCONTEXT;
#define TBS_SUCCESS 0U
#define TBS_E_INTERNAL_ERROR 0x80284001U
#define TBS_E_BAD_PARAMETER 0x80284002U
#define TBS_E_INVALID_OUTPUT_POINTER 0x80284003U
#define TBS_E_INSUFFICIENT_BUFFER 0x80284005U
#define TBS_E_IOERROR 0x80284006U
#define TBS_E_INVALID_CONTEXT_PARAM 0x80284007U
#define TBS_E_SERVICE_NOT_RUNNING 0x80284008U
#define TBS_E_TOO_MANY_TBS_CONTEXTS 0x80284009U
#define TBS_E_SERVICE_START_PENDING 0x8028400BU
#define TBS_E_BUFFER_TOO_LARGE 0x8028400EU
#define TBS_E_TPM_NOT_FOUND 0x8028400FU
#define TBS_E_SERVICE_DISABLED 0x80284010U
#define TBS_E_DEACTIVATED 0x80284016U
TBS_RESULT WINAPI Tbsi_Context_Create(const TBS_CONTEXT_PARAMS *pContextParams,TBS_HCONTEXT *phContext);
TBS_RESULT WINAPI Tbsi_Get_TCG_Log(TBS_HCONTEXT hContext,BYTE *pOutputBuf,UINT32 *pOutputBufLen);
TBS_RESULT WINAPI Tbsi_Physical_Presence_Command(TBS_HCONTEXT hContext,const BYTE *pInputBuf,UINT32 InputBufLen,BYTE *pOutputBuf,UINT32 *pOutputBufLen);
TBS_RESULT WINAPI Tbsip_Cancel_Commands(TBS_HCONTEXT hContext);
TBS_RESULT WINAPI Tbsip_Context_Close(TBS_HCONTEXT hContext);
TBS_RESULT WINAPI Tbsip_Submit_Command(TBS_HCONTEXT hContext,TBS_COMMAND_LOCALITY locality,TBS_COMMAND_PRIORITY priority,const BYTE *pCommandBuf,UINT32 commandBufLen,BYTE *pResultBuf,UINT32 *pResultBufLen);
#ifdef __cplusplus
}
#endif
#endif /*(_WIN32_WINNT >= 0x0600)*/
#endif /*_INC_TBH*/