TW201337760A - 呼叫基本輸入輸出系統之韌體執行時間服務之方法 - Google Patents

呼叫基本輸入輸出系統之韌體執行時間服務之方法 Download PDF

Info

Publication number
TW201337760A
TW201337760A TW101108158A TW101108158A TW201337760A TW 201337760 A TW201337760 A TW 201337760A TW 101108158 A TW101108158 A TW 101108158A TW 101108158 A TW101108158 A TW 101108158A TW 201337760 A TW201337760 A TW 201337760A
Authority
TW
Taiwan
Prior art keywords
execution time
basic input
output system
time service
calling
Prior art date
Application number
TW101108158A
Other languages
English (en)
Inventor
Jack Wang
Original Assignee
Phoenix Tech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phoenix Tech Ltd filed Critical Phoenix Tech Ltd
Priority to TW101108158A priority Critical patent/TW201337760A/zh
Priority to US13/789,298 priority patent/US20130246779A1/en
Publication of TW201337760A publication Critical patent/TW201337760A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明揭示一種具有呼叫基本輸入輸出系統之韌體執行時間服務之方法,包含:由一作業系統傳遞一特別的識別碼及一名稱至一PURE虛擬變數庫;由該PURE虛擬變數庫識別該特別的識別碼及該名稱;檢查該PURE虛擬變數庫中之該特別的識別碼及該名稱所對應之一基本輸入輸出系統之韌體執行時間服務,並呼叫該基本輸入輸出系統之韌體執行時間服務;以及執行該基本輸入輸出系統之韌體執行時間服務,並將結果傳送至該作業系統。

Description

呼叫基本輸入輸出系統之韌體執行時間服務之方法
本發明係關於一種呼叫韌體執行時間服務之方法,特別係關於一種具有呼叫基本輸入輸出系統之韌體執行時間服務之方法。
在基本輸入輸出系統(Basic Input Output System;BIOS)中,目前之應用已經轉換為「統一可延伸韌體界面」(Unified Extensible Firmware Interface;UEFI)。在傳統的BIOS應用中,作業系統(Operating System;OS)可以透過「系統管理中斷」(System Management Interrupt;SMI)呼叫所有的「韌體執行時間服務」(Firmware Runtime Service;FRS)。然而,新一代的BIOS已經使用UEFI,且新的平台並不一定支援SMI,所以部分的FRS無法透過OS來呼叫。因此在新一代的UEFI中,必須導入新的方法,使得OS可以呼叫所有的FRS。
有鑑於此,本發明針對UEFI之BIOS設計一種具有呼叫BIOS之FRS之方法來改善OS呼叫FRS的問題。
本發明揭示一種具有呼叫基本輸入輸出系統之韌體執行時間服務之方法。本發明之呼叫基本輸入輸出系統之韌體執行時間服務之方法,包含:由一作業系統傳遞一特別的識別碼及一名稱至一PURE虛擬變數庫;由該PURE虛擬變數庫識別該特別的識別碼及該名稱;檢查該PURE虛擬變數庫中之該特別的識別碼及該名稱所對應之一基本輸入輸出系統之韌體執行時間服務,並呼叫該基本輸入輸出系統之韌體執行時間服務;以及執行該基本輸入輸出系統之韌體執行時間服務,並將結果傳送回該作業系統。
為了能徹底地瞭解本發明,將在下列的描述中提出詳盡的步驟及結構。顯然地,本發明的施行並未限定於相關領域之技藝者所熟習的特殊細節。另一方面,眾所周知的結構或步驟並未描述於細節中,以避免造成本發明不必要之限制。本發明的較佳實施例會詳細描述如下,然而除了這些詳細描述之外,本發明還可以廣泛地施行在其他的實施例中,且本發明的範圍以申請專利範圍之規範為準。
本發明係關於一種具有呼叫基本輸入輸出系統之韌體執行時間服務之方法,可以藉由一特別的整體唯一識別碼及一名稱,識別該特別的整體唯一識別碼及該名稱,以呼叫該基本輸入輸出系統之韌體執行時間服務。此呼叫之方法稱為「鳳凰UEFI執行時間環境」(Phoenix UEFI Runtime Environment;PURE)。
新一代的BIOS皆需支援新的UEFI作業系統。然而新的硬體平台並不一定支援SMI,所以在作業系統OS下無法透過SMI來呼叫所有的FRS。本發明藉由一種新的方法,PURE,透過作業系統所支援的UEFI變數存取服務,將FRS的要求以虛擬變數的型式傳送給作業系統OS,以達成呼叫FRS的目的。PURE中包含至少一PURE虛擬變數庫,透過驅動程式的方式,依附於作業系統下。當於作業系統下要呼叫韌體執行時間服務時,可以送出一組虛擬變數,包含一特別的整體唯一識別碼(Globally Unique Identification;GUID)及一名稱(NAME)。該整體唯一識別碼為電腦系統中不重複之唯一號碼,可以用來識別一個不重複號碼之物件。該特別的整體唯一識別碼為一個固定之整體唯一識別碼,用以識別該虛擬變數。該名稱則為一變數名稱。在PURE之應用中,該名稱可以為不同之變數名稱,搭配相同之該特別的整體唯一識別碼,用以呼叫同一組虛擬變數庫。
圖1顯示本發明一實施例之呼叫基本輸入輸出系統之韌體執行時間服務之方法之系統方塊圖10。請參閱圖1,該呼叫基本輸入輸出系統之韌體執行時間服務之方法之系統方塊圖10包含作業系統OS 11和PURE 12。該作業系統OS 11包含作業系統應用程式111和作業系統執行時間變數應用程式界面112。該PURE 12包含有關變數之韌體執行時間服務121、PURE虛擬變數庫122、實體變數123和其他韌體執行時間服務124。其中,作業系統應用程式111代表原始作業系統應用所使用之韌體所提供之執行時間服務;作業系統執行時間變數應用程式界面112代表原始作業系統應用程式界面用以存取UEFI變數;有關變數之韌體執行時間服務121代表BIOS所提供之變數執行時間服務;PURE虛擬變數庫122代表處理特殊執行時間服務之驅動程式,並符合變數庫之協定;實體變數123代表儲存在標準變數媒介中的實際變數;其他韌體執行時間服務124代表PURE虛擬變數庫之驅動程式所能發送之執行時間服務。
參考圖1,當作業系統11要執行韌體執行時間服務時,作業系統應用程式111透過作業系統執行時間變數應用程式界面112發出一執行功能變數給PURE12。該執行功能變數在一實施例中可以為一時間變數或一音量變數或其他執行功能。該PURE12中之有關變數之韌體執行時間服務121會接收該執行功能變數之一整體唯一識別碼和一名稱,用以代表指令之功能和變數。當作業系統11要執行其他韌體執行時間服務時,作業系統應用程式111透過作業系統執行時間變數應用程式界面112發出另一執行功能變數給PURE12。該執行功能變數包含該特定之整體唯一識別碼和該名稱,其中該特定之整體唯一識別碼為一固定之整體唯一識別碼,用以辨識該執行功能變數為一PURE虛擬變數庫122之一功能,進而呼叫一其他韌體執行時間服務124。該其他韌體執行時間服務124僅可透過該PURE虛擬變數庫122呼叫,而作業系統11無法直接呼叫此功能。如果該特定之整體唯一識別碼無法在該PURE虛擬變數庫122中找到相對應之指令,則系統會回報錯誤。如果該執行功能變數不包含該特定之整體唯一識別碼,則系統會搜尋一實體變數123,做存取變數的動作。如果無法在該實體變數123中存取變數,則系統會回報錯誤。
圖2顯示本發明一實施例之呼叫基本輸入輸出系統之韌體執行時間服務之方法之流程圖。該呼叫基本輸入輸出系統之韌體執行時間服務之方法包含:作業系統應用程式步驟S21、作業系統變數應用程式界面步驟S22、韌體執行時間變數服務步驟S23和韌體變數庫驅動程式步驟S24。
參考圖2,亦請參考圖1,在步驟S21中另包括步驟S211為呼叫作業系統變數應用程式界面112。該程式界面112會送出執行功能變數給作業系統變數應用程式界面入口,進入步驟S221。步驟S222為呼叫韌體執行時間變數服務,接著進入步驟S231變數服務入口。變數服務入口在步驟S23韌體執行時間變數服務中。接收到變數後,會依據變數判斷是否傳送要求,接著進入步驟S232傳遞要求至所有變數庫之驅動程式。本實施例中,PURE虛擬變數庫包含複數個虛擬變數庫,以判斷和執行該指令。當傳遞要求至所有變數庫,進入步驟S241變數庫驅動程式入口。此入口會判斷變數,在步驟S242判斷是否變數是此庫所有?如果變數是此庫所有,則進入步驟S243變數庫處理模組,例如一處理程式。並在步驟S244將狀態顯示為接受。當變數庫處理模組接受此狀態,則會呼叫該韌體執行時間服務。如果變數此便不是此庫所有,則進入步驟S245狀態為不接受。步驟S246為傳回狀態,根據狀態為接受或不接受來執行命令。接下來進入步驟S233,判斷被變數庫接受否。如果被變數庫接受,進入步驟S235,回到呼叫模組,例如一呼叫程式。如果沒有被變數庫接受,則進入步驟S234,內定變數處理模組。內定變數處理可以為在實體變數123中尋找變數數值,存取變數。如果無法找到相對應的變數,則回報錯誤訊息。接下來進入步驟S223,回到呼叫模組。步驟S223將執行時間指令並回報呼叫模組,為作業系統之處理程序。最後進入S212,回到模組其他程式碼。
圖3顯示本發明一實施例之作業系統音量控制應用之流程圖。如圖3所示,步驟S301為開始。進入步驟S302。在步驟S302中,等待直到使用者按下一個音量控制鍵。接下來進入步驟S303。在步驟S303中,藉由呼叫作業系統應用程式界面GetVariable(VOLUME_GUID,“GetVolume”)來獲取目前音量。其中,該VOLUME_GUID為一特別的整體唯一識別碼,該"GetVolume"為一名稱。兩者組合成一虛擬變數。該虛擬變數會在PURE虛擬變數庫122中尋找匹配的指令,用以執行該韌體執行時間服務。
步驟S304使用者會判斷按下哪一個鍵。當按下的鍵為音量增加時,進入步驟S305。在步驟S305中,判斷目前音量已經為最大?如果目前音量已經為最大,則回到步驟S302,等待直到使用者按下一個音量控制鍵。如果音量不是為最大,則進入步驟S306。在步驟S306中,音量大小會增加。音量新的數值=目前數值+1,將音量調大,進入步驟S309。步驟S309中,藉由呼叫作業系統應用程式界面SetVariable(VOLUME_GUID,“SetVolume”,新的數值)來設定目前音量。此時,音量已經改變,將音量調大。接著回到步驟S302,等待直到使用者按下一個音量控制鍵。
當步驟S304使用者按下哪一個鍵為音量減少時,進入步驟S307。步驟S307判斷目前音量已經為最小?如果目前音量已經為最小,則回到步驟S302等待直到使用者按下一個音量控制鍵。如果目前音量並不是為最小,則進入步驟S308,調小音量,將音量大小的值減少,新的數值=目前數值-1。音量新的數值藉由步驟S309,藉由呼叫作業系統應用程式界面SetVariable(VOLUME_GUID,“SetVolume”,新的數值)來設定目前音量。此時,音量已經改變,將音量調小。接著回到步驟S302,等待直到使用者按下一個音量控制鍵。
圖4顯示本發明一實施例之韌體音量控制變數庫驅動程式之流程圖。參考圖4,步驟S401為開始。進入步驟S402。步驟S402會判斷變數GUID=VOLUME_GUID?如果變數GUID=VOLUME_GUID,則進入步驟S403。如果變數GUID不等於VOLUME_GUID,則進入步驟S408,將狀態設定為不接受並進入步驟S409,傳回狀態。
步驟S403中,判斷變數名稱="GetVolume"?"。如果變數名稱="GetVolume",則進入步驟S404,如果變數名稱不是"GetVolume",則進入步驟S405。在步驟S404中,儲存音量值在變數緩衝區中,進入步驟S406。在步驟S405中,判斷變數名稱是否為"SetVolume"。如果變數名稱為"SetVolume",則進入步驟S406。如果變數名稱不是"SetVolume",則進入步驟S408,將狀態設定為不接受並進入步驟S409,傳回狀態。在步驟S406中,以變數緩衝區中的值設定音量值,藉以設定音量的大小,並進入步驟S407,將狀態設定為接受。並進入步驟S409,傳回狀態。
本發明之實施例,可以解決作業系統無法在新的UEFI呼叫基本輸入輸出系統之韌體執行時間服務之問題。透過PURE之方法,可以藉由作業系統執行時間變數應用程式界面傳送一組虛擬變數,包含該特別的整體唯一識別碼及該名稱,在PURE虛擬變數庫找到相對應的指令,藉以呼叫韌體執行時間服務。本發明之方法,可以解決新的UEFI與新版作業系統間相容性的問題。
本發明之技術內容及技術特點已揭示如上,然而熟悉本項技術之人士仍可能基於本發明之教示及揭示而作種種不背離本發明精神之替換及修飾。因此,本發明之保護範圍應不限於實施例所揭示者,而應包括各種不背離本發明之替換及修飾,並為以下之申請專利範圍所涵蓋。
10...呼叫基本輸入輸出系統之韌體執行時間服務之方法之系統方塊圖
11...作業系統
12...PURE
111...作業系統應用程式
112...作業系統執行時間變數應用程式界面
121...有關變數之韌體執行時間服務
122...PURE虛擬變數庫
123...實體變數
124...其他韌體執行時間服務
S21...作業系統應用程式
S22...作業系統變數應用程式界面
S23...韌體執行時間變數服務
S24...韌體變數庫驅動程式
S211~S212...步驟
S221~S223...步驟
S231~S235...步驟
S241~S246...步驟
S301~S309...步驟
S401~S409...步驟
藉由參照前述說明及下列圖式,本發明之技術特徵及優點得以獲得完全瞭解。
圖1顯示本發明一實施例之呼叫基本輸入輸出系統之韌體執行時間服務之方法之系統方塊圖;
圖2顯示本發明一實施例之呼叫基本輸入輸出系統之韌體執行時間服務之方法之流程圖;
圖3顯示本發明一實施例之作業系統音量控制應用之流程圖;以及
圖4顯示本發明一實施例之韌體音量控制變數庫驅動程式之流程圖。
10...呼叫基本輸入輸出系統之韌體執行時間服務之方法之系統方塊圖
11...作業系統
12...PURE
111...作業系統應用程式
112...作業系統執行時間變數應用程式界面
121...有關變數之韌體執行時間服務
122...PURE虛擬變數庫
123...實體變數
124...其他韌體執行時間服務

Claims (15)

  1. 一種具有呼叫基本輸入輸出系統之韌體執行時間服務之方法,包含:由一作業系統傳遞一特別的識別碼及一名稱至一PURE虛擬變數庫;由該PURE虛擬變數庫識別該特別的識別碼及該名稱;檢查該PURE虛擬變數庫中之該特別的識別碼及該名稱所對應之一基本輸入輸出系統之韌體執行時間服務,並呼叫該基本輸入輸出系統之韌體執行時間服務;以及執行該基本輸入輸出系統之韌體執行時間服務,並將結果傳送至該作業系統。
  2. 根據請求項1所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該PURE虛擬變數庫包含至少一虛擬變數庫,因應於該特別的整體唯一識別碼及該名稱,呼叫另一基本輸入輸出系統之韌體執行時間服務內之一程式,使作業系統可以執行該統一可延伸韌體界面中之該程式。
  3. 根據請求項1所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該特別的識別碼及該名稱由一作業系統應用程式所傳遞。
  4. 根據請求項3所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該作業系統應用程式傳遞該特別的識別碼及該名稱至一作業系統執行時間變數應用程式界面。
  5. 根據請求項4所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該作業系統執行時間變數應用程式界面傳遞該特別的識別碼及該名稱至一有關變數之韌體執行時間服務。
  6. 根據請求項5所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該有關變數之韌體執行時間服務傳遞該特別的識別碼及該名稱至該PURE虛擬變數庫。
  7. 根據請求項1所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該特別的整體唯一識別碼為一個預設的識別碼,因應於該PURE虛擬變數庫,用以識別作業系統呼叫該基本輸入輸出系統之韌體執行時間服務,以執行該基本輸入輸出系統之其他韌體執行時間服務中之程式。
  8. 根據請求項7所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該名稱為一變數名稱,因應於該PURE虛擬變數庫中之該變數名稱,用以傳遞該變數名稱來執行基本輸入輸出系統之其他韌體執行時間服務。
  9. 根據請求項1所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該呼叫基本輸入輸出系統之韌體執行時間服務之方法可以包含不相同的該特別的識別碼。
  10. 根據請求項1所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該呼叫基本輸入輸出系統之其他韌體執行時間服務之方法可以包含相同的該特別的整體唯一識別碼和不相同的該變數名稱。
  11. 根據請求項1所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該PURE虛擬變數庫包含複數個虛擬變數庫,該虛擬變數庫為一驅動程式。
  12. 根據請求項11所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該PURE虛擬變數庫可擴充至複數個虛擬變數庫。
  13. 根據請求項1所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該特別的識別碼為一不重複之唯一識別號碼。
  14. 根據請求項1所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該呼叫基本輸入輸出系統之其他韌體執行時間服務之方法應用於該統一可延伸韌體界面之中。
  15. 根據請求項1所述之呼叫基本輸入輸出系統之韌體執行時間服務之方法,其中該呼叫基本輸入輸出系統之其他韌體執行時間服務之方法可應用於不同之中央處理器。
TW101108158A 2012-03-09 2012-03-09 呼叫基本輸入輸出系統之韌體執行時間服務之方法 TW201337760A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101108158A TW201337760A (zh) 2012-03-09 2012-03-09 呼叫基本輸入輸出系統之韌體執行時間服務之方法
US13/789,298 US20130246779A1 (en) 2012-03-09 2013-03-07 Calling Firmware Runtime Services of Basic Input Output System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101108158A TW201337760A (zh) 2012-03-09 2012-03-09 呼叫基本輸入輸出系統之韌體執行時間服務之方法

Publications (1)

Publication Number Publication Date
TW201337760A true TW201337760A (zh) 2013-09-16

Family

ID=49158819

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101108158A TW201337760A (zh) 2012-03-09 2012-03-09 呼叫基本輸入輸出系統之韌體執行時間服務之方法

Country Status (2)

Country Link
US (1) US20130246779A1 (zh)
TW (1) TW201337760A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477848B2 (en) * 2013-03-15 2016-10-25 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (UEFI)-compliant firmware

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040220959A1 (en) * 2003-04-30 2004-11-04 Rothman Michael A Methods and apparatus to enable system configuration during operating system runtime
US7134006B2 (en) * 2003-06-03 2006-11-07 Gateway Inc. Method and system for changing software access level within or outside a host protected area
US7165170B2 (en) * 2003-09-12 2007-01-16 Intel Corporation System and method for firmware to export pre-boot data into the operating system runtime environment
EP1963966A4 (en) * 2005-12-24 2009-12-30 Intel Corp METHOD AND DEVICE FOR EFFICIENT ARRANGING OF PORTABLE EXECUTABLE (PE) PICTURES
US8185886B2 (en) * 2007-06-26 2012-05-22 Intel Corporation Method and apparatus to enable dynamically activated firmware updates
US8127312B2 (en) * 2007-12-29 2012-02-28 Intel Corporation BIOS runtime services interface
US8234626B2 (en) * 2008-06-04 2012-07-31 Dell Products L.P. Modular ASL component
US8356168B2 (en) * 2008-06-19 2013-01-15 Intel Corporation Non-blocking UEFI I/O channel enhancements
JP5593856B2 (ja) * 2010-06-02 2014-09-24 富士通株式会社 情報処理装置およびドライバ実行制御方法
TW201220191A (en) * 2010-11-08 2012-05-16 Inventec Corp Electronic apparatus and booting method thereof
US8607040B2 (en) * 2010-11-16 2013-12-10 Intel Corporation Method of provisioning firmware in an operating system (OS) absent services environment

Also Published As

Publication number Publication date
US20130246779A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
US9244999B2 (en) Database query using a user-defined function
KR101618476B1 (ko) 휴대용 컴퓨팅 디바이스에서 분산 리소스 관리
JP2017111834A (ja) 動的サービス統合システム及び方法
US11582321B2 (en) Service request processing method and related apparatus
CN110489440B (zh) 数据查询方法和装置
WO2014206129A1 (zh) 一种执行数据库操作命令的计算设备和方法
US11055154B2 (en) Screen-shooting method and device for guest operating system in computer apparatus
WO2020000954A1 (zh) 一种地址映射方法、系统、设备及计算机可读存储介质
KR20210083222A (ko) 음성 데이터 처리 방법, 장치, 기기 및 저장매체
US20210176186A1 (en) Resource processing method and system, storage medium and electronic device
EP3188446A1 (en) Remote resource access method and exchange device
US9128730B2 (en) Method for executing bios tool program in non-SMI mechanism
TW201337760A (zh) 呼叫基本輸入輸出系統之韌體執行時間服務之方法
KR102501542B1 (ko) 블록체인 시스템의 가동 방법, 장치, 설비 및 저장 매체
CN107632893B (zh) 消息队列处理方法及装置
WO2021174791A1 (zh) 任务迁移方法、装置、电子设备及存储介质
WO2020259286A1 (zh) 获取设备信息的方法、装置、存储介质及电子设备
US9489246B2 (en) Method and device for determining parallelism of tasks of a program
TWI444824B (zh) 虛擬機器記憶體的鑑識方法與電腦系統
CN111324374A (zh) 基于应用性能管理系统的应用程序的注册方法和装置
US11550624B2 (en) Method, device, and computer program product for executing a job in an application system
CN115858592A (zh) 数据库操作的处理方法、存储介质与计算机设备
JP5094938B2 (ja) データベース装置
CN116048343A (zh) 物联网指令生成方法、装置、存储介质及电子设备
CN115599391A (zh) 程序项目编译方法、装置、电子设备及存储介质