1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2 #[link(name = "windows")]
3 extern "system" {
4     #[cfg(feature = "Win32_Foundation")]
GetDeviceID(pbwindowsaik: *mut u8, cbwindowsaik: u32, pcbresult: *mut u32, pfprotectedbytpm: *mut super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT5     pub fn GetDeviceID(pbwindowsaik: *mut u8, cbwindowsaik: u32, pcbresult: *mut u32, pfprotectedbytpm: *mut super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT;
6     #[cfg(feature = "Win32_Foundation")]
GetDeviceIDString(pszwindowsaik: super::super::Foundation::PWSTR, cchwindowsaik: u32, pcchresult: *mut u32, pfprotectedbytpm: *mut super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT7     pub fn GetDeviceIDString(pszwindowsaik: super::super::Foundation::PWSTR, cchwindowsaik: u32, pcchresult: *mut u32, pfprotectedbytpm: *mut super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT;
Tbsi_Context_Create(pcontextparams: *const TBS_CONTEXT_PARAMS, phcontext: *mut *mut ::core::ffi::c_void) -> u328     pub fn Tbsi_Context_Create(pcontextparams: *const TBS_CONTEXT_PARAMS, phcontext: *mut *mut ::core::ffi::c_void) -> u32;
Tbsi_Create_Windows_Key(keyhandle: u32) -> u329     pub fn Tbsi_Create_Windows_Key(keyhandle: u32) -> u32;
Tbsi_GetDeviceInfo(size: u32, info: *mut ::core::ffi::c_void) -> u3210     pub fn Tbsi_GetDeviceInfo(size: u32, info: *mut ::core::ffi::c_void) -> u32;
Tbsi_Get_OwnerAuth(hcontext: *const ::core::ffi::c_void, ownerauthtype: u32, poutputbuf: *mut u8, poutputbuflen: *mut u32) -> u3211     pub fn Tbsi_Get_OwnerAuth(hcontext: *const ::core::ffi::c_void, ownerauthtype: u32, poutputbuf: *mut u8, poutputbuflen: *mut u32) -> u32;
Tbsi_Get_TCG_Log(hcontext: *const ::core::ffi::c_void, poutputbuf: *mut u8, poutputbuflen: *mut u32) -> u3212     pub fn Tbsi_Get_TCG_Log(hcontext: *const ::core::ffi::c_void, poutputbuf: *mut u8, poutputbuflen: *mut u32) -> u32;
Tbsi_Get_TCG_Log_Ex(logtype: u32, pboutput: *mut u8, pcboutput: *mut u32) -> u3213     pub fn Tbsi_Get_TCG_Log_Ex(logtype: u32, pboutput: *mut u8, pcboutput: *mut u32) -> u32;
Tbsi_Physical_Presence_Command(hcontext: *const ::core::ffi::c_void, pabinput: *const u8, cbinput: u32, paboutput: *mut u8, pcboutput: *mut u32) -> u3214     pub fn Tbsi_Physical_Presence_Command(hcontext: *const ::core::ffi::c_void, pabinput: *const u8, cbinput: u32, paboutput: *mut u8, pcboutput: *mut u32) -> u32;
Tbsi_Revoke_Attestation() -> u3215     pub fn Tbsi_Revoke_Attestation() -> u32;
Tbsip_Cancel_Commands(hcontext: *const ::core::ffi::c_void) -> u3216     pub fn Tbsip_Cancel_Commands(hcontext: *const ::core::ffi::c_void) -> u32;
Tbsip_Context_Close(hcontext: *const ::core::ffi::c_void) -> u3217     pub fn Tbsip_Context_Close(hcontext: *const ::core::ffi::c_void) -> u32;
Tbsip_Submit_Command(hcontext: *const ::core::ffi::c_void, locality: TBS_COMMAND_LOCALITY, priority: TBS_COMMAND_PRIORITY, pabcommand: *const u8, cbcommand: u32, pabresult: *mut u8, pcbresult: *mut u32) -> u3218     pub fn Tbsip_Submit_Command(hcontext: *const ::core::ffi::c_void, locality: TBS_COMMAND_LOCALITY, priority: TBS_COMMAND_PRIORITY, pabcommand: *const u8, cbcommand: u32, pabresult: *mut u8, pcbresult: *mut u32) -> u32;
19 }
20 pub type TBS_COMMAND_LOCALITY = u32;
21 pub const TBS_COMMAND_LOCALITY_ZERO: TBS_COMMAND_LOCALITY = 0u32;
22 pub const TBS_COMMAND_LOCALITY_ONE: TBS_COMMAND_LOCALITY = 1u32;
23 pub const TBS_COMMAND_LOCALITY_TWO: TBS_COMMAND_LOCALITY = 2u32;
24 pub const TBS_COMMAND_LOCALITY_THREE: TBS_COMMAND_LOCALITY = 3u32;
25 pub const TBS_COMMAND_LOCALITY_FOUR: TBS_COMMAND_LOCALITY = 4u32;
26 pub type TBS_COMMAND_PRIORITY = u32;
27 pub const TBS_COMMAND_PRIORITY_LOW: TBS_COMMAND_PRIORITY = 100u32;
28 pub const TBS_COMMAND_PRIORITY_NORMAL: TBS_COMMAND_PRIORITY = 200u32;
29 pub const TBS_COMMAND_PRIORITY_SYSTEM: TBS_COMMAND_PRIORITY = 400u32;
30 pub const TBS_COMMAND_PRIORITY_HIGH: TBS_COMMAND_PRIORITY = 300u32;
31 pub const TBS_COMMAND_PRIORITY_MAX: TBS_COMMAND_PRIORITY = 2147483648u32;
32 #[repr(C)]
33 pub struct TBS_CONTEXT_PARAMS {
34     pub version: u32,
35 }
36 impl ::core::marker::Copy for TBS_CONTEXT_PARAMS {}
37 impl ::core::clone::Clone for TBS_CONTEXT_PARAMS {
clone(&self) -> Self38     fn clone(&self) -> Self {
39         *self
40     }
41 }
42 #[repr(C)]
43 pub struct TBS_CONTEXT_PARAMS2 {
44     pub version: u32,
45     pub Anonymous: TBS_CONTEXT_PARAMS2_0,
46 }
47 impl ::core::marker::Copy for TBS_CONTEXT_PARAMS2 {}
48 impl ::core::clone::Clone for TBS_CONTEXT_PARAMS2 {
clone(&self) -> Self49     fn clone(&self) -> Self {
50         *self
51     }
52 }
53 #[repr(C)]
54 pub union TBS_CONTEXT_PARAMS2_0 {
55     pub Anonymous: TBS_CONTEXT_PARAMS2_0_0,
56     pub asUINT32: u32,
57 }
58 impl ::core::marker::Copy for TBS_CONTEXT_PARAMS2_0 {}
59 impl ::core::clone::Clone for TBS_CONTEXT_PARAMS2_0 {
clone(&self) -> Self60     fn clone(&self) -> Self {
61         *self
62     }
63 }
64 #[repr(C)]
65 pub struct TBS_CONTEXT_PARAMS2_0_0 {
66     pub _bitfield: u32,
67 }
68 impl ::core::marker::Copy for TBS_CONTEXT_PARAMS2_0_0 {}
69 impl ::core::clone::Clone for TBS_CONTEXT_PARAMS2_0_0 {
clone(&self) -> Self70     fn clone(&self) -> Self {
71         *self
72     }
73 }
74 pub const TBS_CONTEXT_VERSION_ONE: u32 = 1u32;
75 pub const TBS_CONTEXT_VERSION_TWO: u32 = 2u32;
76 pub const TBS_OWNERAUTH_TYPE_ADMIN: u32 = 2u32;
77 pub const TBS_OWNERAUTH_TYPE_ENDORSEMENT: u32 = 4u32;
78 pub const TBS_OWNERAUTH_TYPE_ENDORSEMENT_20: u32 = 12u32;
79 pub const TBS_OWNERAUTH_TYPE_FULL: u32 = 1u32;
80 pub const TBS_OWNERAUTH_TYPE_STORAGE_20: u32 = 13u32;
81 pub const TBS_OWNERAUTH_TYPE_USER: u32 = 3u32;
82 pub const TBS_SUCCESS: u32 = 0u32;
83 pub const TBS_TCGLOG_DRTM_BOOT: u32 = 4u32;
84 pub const TBS_TCGLOG_DRTM_CURRENT: u32 = 1u32;
85 pub const TBS_TCGLOG_DRTM_RESUME: u32 = 5u32;
86 pub const TBS_TCGLOG_SRTM_BOOT: u32 = 2u32;
87 pub const TBS_TCGLOG_SRTM_CURRENT: u32 = 0u32;
88 pub const TBS_TCGLOG_SRTM_RESUME: u32 = 3u32;
89 #[repr(C)]
90 pub struct TPM_DEVICE_INFO {
91     pub structVersion: u32,
92     pub tpmVersion: u32,
93     pub tpmInterfaceType: u32,
94     pub tpmImpRevision: u32,
95 }
96 impl ::core::marker::Copy for TPM_DEVICE_INFO {}
97 impl ::core::clone::Clone for TPM_DEVICE_INFO {
clone(&self) -> Self98     fn clone(&self) -> Self {
99         *self
100     }
101 }
102 pub const TPM_IFTYPE_1: u32 = 1u32;
103 pub const TPM_IFTYPE_EMULATOR: u32 = 4u32;
104 pub const TPM_IFTYPE_HW: u32 = 3u32;
105 pub const TPM_IFTYPE_SPB: u32 = 5u32;
106 pub const TPM_IFTYPE_TRUSTZONE: u32 = 2u32;
107 pub const TPM_IFTYPE_UNKNOWN: u32 = 0u32;
108 pub const TPM_VERSION_12: u32 = 1u32;
109 pub const TPM_VERSION_20: u32 = 2u32;
110 pub const TPM_VERSION_UNKNOWN: u32 = 0u32;
111 pub const TPM_WNF_INFO_CLEAR_SUCCESSFUL: u32 = 1u32;
112 pub const TPM_WNF_INFO_NO_REBOOT_REQUIRED: u32 = 1u32;
113 pub const TPM_WNF_INFO_OWNERSHIP_SUCCESSFUL: u32 = 2u32;
114 #[repr(C)]
115 pub struct tdTPM_WNF_PROVISIONING {
116     pub status: u32,
117     pub message: [u8; 28],
118 }
119 impl ::core::marker::Copy for tdTPM_WNF_PROVISIONING {}
120 impl ::core::clone::Clone for tdTPM_WNF_PROVISIONING {
clone(&self) -> Self121     fn clone(&self) -> Self {
122         *self
123     }
124 }
125