mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
192 lines
5.3 KiB
C
Vendored
192 lines
5.3 KiB
C
Vendored
/**
|
|
* This file has no copyright assigned and is placed in the Public Domain.
|
|
* This file is part of the mingw-w64 runtime package.
|
|
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
|
*/
|
|
|
|
#ifndef _TBS_H_
|
|
#define _TBS_H_
|
|
|
|
#include <winapifamily.h>
|
|
|
|
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
#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 WINBOOL, *PBOOL;
|
|
typedef const WINBOOL *PCBOOL;
|
|
|
|
typedef UINT8 BYTE, *PBYTE;
|
|
typedef const BYTE *PCBYTE;
|
|
|
|
typedef WINBOOL 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;
|
|
__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_
|
|
|
|
HRESULT GetDeviceID(PBYTE pbWindowsAIK, UINT32 cbWindowsAIK, PUINT32 pcbResult, WINBOOL *pfProtectedByTPM);
|
|
HRESULT GetDeviceIDString(PWSTR pszWindowsAIK, UINT32 cchWindowsAIK, PUINT32 pcchResult, WINBOOL *pfProtectedByTPM);
|
|
|
|
#endif /* ifndef _NTDDK_ */
|
|
|
|
#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)
|
|
|
|
WINBOOL WINAPI Tbsi_Is_Tpm_Present(void);
|
|
|
|
#endif /* (NTDDI_VERSION >= NTDDI_WIN10_NI) */
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
|
|
|
|
#endif /* _TBS_H_ */
|