2017-10-17 85 views
-1

我正在寫,應該是能夠將大量的數據寫入到磁盤的UEFI應用更多的時候寫的崩潰。 我知道的FAT - 32文件大小的限制和每個目錄等文件的數量,這應該不是問題。我試着寫存儲區UND我可以讀/寫它沒有問題,但一定量的數據後,我的虛擬機只是重新啓動沒有任何錯誤消息標誌着內存映射爲可用。 將以下代碼行的問題:EFI_FILE_HANDLE->寫作比約3.4吉布

uefi_call_wrapper(handle->Write, 3, handle, size, content); 

手柄幾行較早初始化,大小始終是最大128MiB和內容與讀/寫訪問一個有效的內存區域。 我已經使用EDK2重寫了Windows的全部細節,並且遇到了同樣的問題。

任何人都可以幫助我嗎? 先謝謝你,祝你有個美好的夜晚

+0

什麼錯誤你好嗎? –

+0

我沒有得到任何錯誤,只是VM重新引導和真實HW它只是掛起並沒有什麼事情發生...... – AlexRoot

+0

什麼是'handle'的類型?當您使用較小的尺寸調用時,寫入功能會起作用嗎?它開始失敗的大小是多少?您確定重新啓動發生在Write的調用中,而不是在它返回之後? – prl

回答

0

傢伙Hi和感謝您對answeres。 size參數是一個指針。我剛剛找到了解決問題的辦法。我不知道我必須重置看門狗定時器。 調用uefi_call_wrapper(ST->BootServices->SetWatchdogTimer, 4, 0, 0, 0, NULL);一切正常

乾杯後!

1

假設句柄是一個指向EFI_FILE_PROTOCOL的指針,寫入的BufferSize參數是通過引用傳遞的。當函數返回時,BufferSize包含寫入的字節數。你的問題沒有給出足夠的上下文,但看起來你正在通過價值傳遞它。