The EFI_FILE_PROTOCOL provides file IO access to supported file systems.
EFI_FILE_PROTOCOL讓你可以存取檔案或是路徑的內容,也可以用來當參考路徑以尋找新的檔案並產生新的handles。
EFI_FILE_PROTOCOL可以從FileSystem->OpenVolume()拿到,使用完畢以後必須用下面的Close()關掉,不然可能會有衝突發生。
因為File System的driver會把打開的檔案存到buffer裡面,Flush()可以把buffer裡面的東西刷回實體的device裡面
EFI_FILE_PROTOCOL
1.EFI_FILE_PROTOCOL.Open()
>> 打開一個名為FileName的檔案
2.EFI_FILE_PROTOCOL.Close()
>> 關閉file
3.EFI_FILE_PROTOCOL.Delete()
>> 關閉並刪除
4.EFI_FILE_PROTOCOL.Read()
>> 把data從file讀進memory buffer裡面
5.EFI_FILE_PROTOCOL.Write()
>> 把data寫回file裡
6.EFI_FILE_PROTOCOL.GetPosition()
>> Position就是第幾個byte的位置,這邊回傳目前是第幾個byte
7.EFI_FILE_PROTOCOL.SetPosition()
>> 設定目前是第幾個byte,之後做read/write都從這個byte開始
8.EFI_FILE_PROTOCOL.GetInfo()
9.EFI_FILE_PROTOCOL.SetInfo()
10.EFI_FILE_PROTOCOL.Flush
>> 把改過的file刷回device