From b72109e4b76b2c81d5fba3c9dc7698a60385c99e Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <nathbap...@gmail.com> Date: Thu, 10 Oct 2024 06:22:56 +0000 Subject: [PATCH] headers: Add new symbols in tbs.h
Fixes https://github.com/mingw-w64/mingw-w64/issues/62 Signed-off-by: Biswapriyo Nath <nathbap...@gmail.com> --- mingw-w64-headers/include/tbs.h | 208 ++++++++++++++++++++++++++------ 1 file changed, 174 insertions(+), 34 deletions(-) diff --git a/mingw-w64-headers/include/tbs.h b/mingw-w64-headers/include/tbs.h index 8f885da..74e7161 100644 --- a/mingw-w64-headers/include/tbs.h +++ b/mingw-w64-headers/include/tbs.h @@ -4,49 +4,189 @@ * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -#ifndef _INC_TBS -#define _INC_TBS +#ifndef _TBS_H_ +#define _TBS_H_ -#if (_WIN32_WINNT >= 0x0600) +#include <winapifamily.h> -#ifdef __cplusplus +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +#if defined(__cplusplus) extern "C" { #endif - 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 { +#if (NTDDI_VERSION >= NTDDI_VISTA) + +#ifndef WINAPI +#define WINAPI __stdcall +#endif + +#define CONST const + +typedef signed int INT32, *PINT32; +typedef const INT32 *PCINT32; +typedef unsigned int UINT32, *PUINT32; +typedef const UINT32 *PCUINT32; + +#define VOID void +typedef VOID *PVOID; +typedef const VOID *PCVOID; + +typedef INT32 BOOL, *PBOOL; +typedef const BOOL *PCBOOL; + +typedef UINT8 BYTE, *PBYTE; +typedef const BYTE *PCBYTE; + +typedef BOOL TBS_BOOL; +typedef UINT32 TBS_RESULT; +typedef PVOID TBS_HCONTEXT, *PTBS_HCONTEXT; +typedef UINT32 TBS_COMMAND_PRIORITY; +typedef UINT32 TBS_COMMAND_LOCALITY; +typedef UINT32 TBS_OWNERAUTH_TYPE; +typedef UINT32 TBS_HANDLE; + +#define TBS_CONTEXT_VERSION_ONE 1 + +#define TBS_COMMAND_PRIORITY_LOW 100 +#define TBS_COMMAND_PRIORITY_NORMAL 200 +#define TBS_COMMAND_PRIORITY_HIGH 300 +#define TBS_COMMAND_PRIORITY_SYSTEM 400 +#define TBS_COMMAND_PRIORITY_MAX 0x80000000 + +#define TBS_COMMAND_LOCALITY_ZERO 0 +#define TBS_COMMAND_LOCALITY_ONE 1 +#define TBS_COMMAND_LOCALITY_TWO 2 +#define TBS_COMMAND_LOCALITY_THREE 3 +#define TBS_COMMAND_LOCALITY_FOUR 4 + +#define TBS_SUCCESS 0 + +#define TBS_IN_OUT_BUF_SIZE_MAX (256 * 1024) + +#define TBS_OWNERAUTH_TYPE_FULL 1 +#define TBS_OWNERAUTH_TYPE_ADMIN 2 +#define TBS_OWNERAUTH_TYPE_USER 3 +#define TBS_OWNERAUTH_TYPE_ENDORSEMENT 4 + +#define TBS_OWNERAUTH_TYPE_ENDORSEMENT_20 12 +#define TBS_OWNERAUTH_TYPE_STORAGE_20 13 + +typedef struct tdTBS_CONTEXT_PARAMS { + UINT32 version; +} TBS_CONTEXT_PARAMS, *PTBS_CONTEXT_PARAMS; +typedef const TBS_CONTEXT_PARAMS *PCTBS_CONTEXT_PARAMS; + +TBS_RESULT WINAPI Tbsi_Context_Create(PCTBS_CONTEXT_PARAMS pContextParams, PTBS_HCONTEXT phContext); +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, PCBYTE pabCommand, UINT32 cbCommand, PBYTE pabResult, PUINT32 pcbResult); +TBS_RESULT WINAPI Tbsip_Cancel_Commands(TBS_HCONTEXT hContext); +TBS_RESULT WINAPI Tbsi_Physical_Presence_Command(TBS_HCONTEXT hContext, PCBYTE pabInput, UINT32 cbInput, PBYTE pabOutput, PUINT32 pcbOutput); + +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ + +#if (NTDDI_VERSION >= NTDDI_VISTASP1) + +TBS_RESULT WINAPI Tbsi_Get_TCG_Log(TBS_HCONTEXT hContext, PBYTE pOutputBuf, PUINT32 pOutputBufLen); + +#endif /* _WIN32_WINNT_VISTASP1 */ + +#if (NTDDI_VERSION >= NTDDI_WIN8) + +#define TBS_CONTEXT_VERSION_TWO 2 + +typedef struct tdTBS_CONTEXT_PARAMS2 { UINT32 version; - } TBS_CONTEXT_PARAMS; + __C89_NAMELESS union { + __C89_NAMELESS struct { + UINT32 requestRaw : 1; + UINT32 includeTpm12 : 1; + UINT32 includeTpm20 : 1; + }; + UINT32 asUINT32; + }; +} TBS_CONTEXT_PARAMS2, *PTBS_CONTEXT_PARAMS2; +typedef const TBS_CONTEXT_PARAMS2 *PCTBS_CONTEXT_PARAMS2; + +typedef struct tdTPM_WNF_PROVISIONING { + UINT32 status; + BYTE message[28]; +} TPM_WNF_PROVISIONING; + +#define TPM_WNF_INFO_CLEAR_SUCCESSFUL 0x00000001 +#define TPM_WNF_INFO_OWNERSHIP_SUCCESSFUL 0x00000002 + +#define TPM_WNF_INFO_NO_REBOOT_REQUIRED 1 + +#ifndef TPM_VERSION_UNKNOWN + +#define TPM_VERSION_UNKNOWN 0 +#define TPM_VERSION_12 1 +#define TPM_VERSION_20 2 + +#define TPM_IFTYPE_UNKNOWN 0 +#define TPM_IFTYPE_1 1 +#define TPM_IFTYPE_TRUSTZONE 2 +#define TPM_IFTYPE_HW 3 +#define TPM_IFTYPE_EMULATOR 4 +#define TPM_IFTYPE_SPB 5 + +typedef struct _TPM_DEVICE_INFO { + UINT32 structVersion; + UINT32 tpmVersion; + UINT32 tpmInterfaceType; + UINT32 tpmImpRevision; +} TPM_DEVICE_INFO, *PTPM_DEVICE_INFO; +typedef const TPM_DEVICE_INFO *PCTPM_DEVICE_INFO; + +#endif /* TPM_VERSION_UNKNOWN */ + +TBS_RESULT WINAPI Tbsi_GetDeviceInfo(UINT32 Size, PVOID Info); +TBS_RESULT WINAPI Tbsi_Get_OwnerAuth(TBS_HCONTEXT hContext, TBS_OWNERAUTH_TYPE ownerauthType, PBYTE pOutputBuf, PUINT32 pOutputBufLen); +TBS_RESULT WINAPI Tbsi_Revoke_Attestation(void); + +#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */ + +#if (NTDDI_VERSION >= NTDDI_WINBLUE) + +#ifndef _NTDDK_ - typedef LPVOID TBS_HCONTEXT; +HRESULT GetDeviceID(PBYTE pbWindowsAIK, UINT32 cbWindowsAIK, PUINT32 pcbResult, BOOL *pfProtectedByTPM); +HRESULT GetDeviceIDString(PWSTR pszWindowsAIK, UINT32 cchWindowsAIK, PUINT32 pcchResult, BOOL *pfProtectedByTPM); - 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); +#endif /* ifndef _NTDDK_ */ -#ifdef __cplusplus +#endif /* (NTDDI_VERSION >= NTDDI_WINBLUE) */ + +#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) + +TBS_RESULT WINAPI Tbsi_Create_Windows_Key(TBS_HANDLE keyHandle); + +#endif /* (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) */ + +#if (NTDDI_VERSION >= NTDDI_WIN10_RS4) + +#define TBS_TCGLOG_SRTM_CURRENT 0 +#define TBS_TCGLOG_DRTM_CURRENT 1 +#define TBS_TCGLOG_SRTM_BOOT 2 +#define TBS_TCGLOG_SRTM_RESUME 3 +#define TBS_TCGLOG_DRTM_BOOT 4 +#define TBS_TCGLOG_DRTM_RESUME 5 + +TBS_RESULT WINAPI Tbsi_Get_TCG_Log_Ex(UINT32 logType, PBYTE pbOutput, PUINT32 pcbOutput); + +#endif /* (NTDDI_VERSION >= NTDDI_WIN10_RS4) */ + +#if (NTDDI_VERSION >= NTDDI_WIN10_NI) + +BOOL WINAPI Tbsi_Is_Tpm_Present(void); + +#endif /* (NTDDI_VERSION >= NTDDI_WIN10_NI) */ + +#if defined(__cplusplus) } #endif -#endif /*(_WIN32_WINNT >= 0x0600)*/ -#endif /*_INC_TBH*/ +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ + +#endif /* _TBS_H_ */ -- 2.47.0
_______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public