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