我正在尝试在 Rust 中实现 WinVerifyTrust 但在初始化 WinTrustData 结构成员时遇到问题

问题描述 投票:0回答:0
Initializing Wintrust_File_Info
let mut wt_file_info = WINTRUST_FILE_INFO{
    cbStruct          : std::mem::size_of::<WINTRUST_FILE_INFO>() as DWORD,
    pcwszFilePath     : file_path_wide.as_ptr(),//.as_ptr() as *const u16,
    hFile             : ptr::null_mut(),
    pgKnownSubject    : ptr::null_mut(),
};

Initializing WinTrust_Data

wt_data.cbStruct              = std::mem::size_of::<WINTRUST_DATA>() as DWORD;
wt_data.dwUIChoice            = WTD_UI_NONE;
wt_data.hWVTStateData         = ptr::null_mut();
wt_data.pwszURLReference      = ptr::null_mut();
wt_data.fdwRevocationChecks   = WTD_REVOKE_NONE;
wt_data.pPolicyCallbackData   = ptr::null_mut();
wt_data.pSIPClientData        = ptr::null_mut();
wt_data.dwUnionChoice         = WTD_CHOICE_FILE;
wt_data.dwStateAction         = 1;  

Wintrust_Data 有一个成员“u”,它以 Wintrust_data_u 作为输入 结构!{struct WINTRUST_DATA { cbStruct: DWORD, pPolicyCallbackData:LPVOID, pSIPClientData:LPVOID, dwUIChoice: DWORD, fdwRevocationChecks:DWORD, dwUnionChoice: DWORD, 你:WINTRUST_DATA_u, dwStateAction:DWORD, hWVTStateData:句柄, pwszURLReference: *mut WCHAR, dwProvFlags: DWORD, dwUIContext: DWORD, pSignatureSettings:*mut WINTRUST_SIGNATURE_SETTINGS, }}

联合!{联合 WINTRUST_DATA_u { [使用; 1], pFile pFile_mut: *mut WINTRUST_FILE_INFO, }}

我们如何使用 wt_file_info 初始化 Wintrust_Data_u 中的 pFile,然后我们如何初始化 wt_data.u

如果您能提供帮助,请发布任何解决方案 谢谢

我无法编写代码来使用 wt_file_info 初始化 Wintrust_Data_u 中的 pFile,然后初始化 wt_data.u

我们如何使用 wt_file_info 初始化 Wintrust_Data_u 中的 pFile,然后我们如何初始化 wt_data.u

如果您能提供帮助,请发布任何解决方案 谢谢

winapi rust struct union winverifytrust
© www.soinside.com 2019 - 2024. All rights reserved.