BenutzerhandbuchInhaltsverzeichnisExtensible Firmware Interface Specification1Disclaimer2Revision History3Table of Contents51 Introduction191.1 Overview201.2 Goals211.3 Target Audience231.4 Related Information241.5 Prerequisite Specifications261.5.1 ACPI Specification261.5.2 WfM Specification261.5.3 Additional Considerations for Intel® Itanium™-based Platforms271.6 EFI Design Overview271.7 Migration Requirements291.7.1 Legacy Operating System Support291.7.2 Supporting the EFI Specification on a Legacy Platform291.8 Conventions Used in This Document301.8.1 Data Structure Descriptions301.8.2 Typographic Conventions301.9 Guidelines for Use of the Term ”Extensible Firmware Interface”302 Overview312.1 Boot Manager322.2 Firmware Core322.2.1 EFI Services322.2.2 Runtime Services332.3 Calling Conventions342.3.1 Data Types342.3.2 IA-32 Platforms362.3.3 Itanium-based Platforms362.4 Protocols372.5 Requirements392.5.1 Required Elements392.5.2 Optional Elements402.5.3 Appendixes413 Services433.1 Event, Timer, and Task Priority Services443.1.1 CreateEvent()473.1.2 CloseEvent()513.1.3 SignalEvent()523.1.4 WaitForEvent()533.1.5 CheckEvent()543.1.6 SetTimer()553.1.7 RaiseTPL()573.1.8 RestoreTPL()593.2 Memory Allocation Services603.2.1 AllocatePages()633.2.2 FreePages()663.2.3 GetMemoryMap()673.2.4 AllocatePool()713.2.5 FreePool()723.3 Protocol Handler Services733.3.1 InstallProtocolInterface()753.3.2 UninstallProtocolInterface()773.3.3 ReinstallProtocolInterface()783.3.4 RegisterProtocolNotify()793.3.5 LocateHandle()803.3.6 HandleProtocol()823.3.7 LocateDevicePath()833.4 Image Services853.4.1 LoadImage()873.4.2 StartImage()893.4.3 UnloadImage()903.4.4 EFI_IMAGE_ENTRY_POINT913.4.5 Exit()923.4.6 ExitBootServices()943.5 Variable Services953.5.1 GetVariable()963.5.2 GetNextVariableName()983.5.3 SetVariable()1003.6 Time Services1023.6.1 GetTime()1033.6.2 SetTime()1063.6.3 GetWakeupTime()1073.6.4 SetWakeupTime()1083.7 Virtual Memory Services1093.7.1 SetVirtualAddressMap()1103.7.2 ConvertPointer()1123.8 Miscellaneous Services1133.8.1 ResetSystem()1143.8.2 SetWatchdogTimer()1163.8.3 Stall()1183.8.4 GetNextMonotonicCount()1193.8.5 GetNextHighMonotonicCount()1203.8.6 InstallConfigurationTable()1214 EFI Image1234.1 LOADED_IMAGE Protocol1234.1.1 LOADED_IMAGE.Unload()1264.2 EFI Image Header1274.3 EFI Applications1284.4 EFI OS Loaders1284.5 EFI Drivers1284.5.1 EFI Image Handoff State1295 Device Path Protocol1355.1 Device Path Overview1355.2 EFI_DEVICE_PATH Protocol1365.3 Device Path Nodes1375.3.1 Generic Device Path Structures1375.3.2 Hardware Device Path1385.3.3 ACPI Device Path1415.3.4 Messaging Device Path1415.3.5 Media Device Path1475.3.6 BIOS Boot Specification Device Path1515.4 Device Path Generation Rules1515.4.1 Housekeeping Rules1515.4.2 Rules with ACPI _HID and _UID1525.4.3 Rules with ACPI _ADR1535.4.4 Hardware vs. Messaging Device Path Rules1535.4.5 Media Device Path Rules1545.4.6 Other Rules1546 Device I/O Protocol1556.1 Device I/O Overview1556.2 DEVICE_IO Protocol1566.2.1 DEVICE_IO.Mem(), .Io(), and .Pci()1596.2.2 DEVICE_IO.PciDevicePath()1616.2.3 DEVICE_IO.Map()1626.2.4 DEVICE_IO.Unmap()1646.2.5 DEVICE_IO.AllocateBuffer()1656.2.6 DEVICE_IO.Flush()1676.2.7 DEVICE_IO.FreeBuffer()1687 Console I/O Protocol1697.1 Console I/O Overview1697.2 ConsoleIn Definition1707.3 SIMPLE_INPUT Protocol1727.3.1 SIMPLE_INPUT.Reset()1737.3.2 SIMPLE_INPUT.ReadKeyStroke1747.4 ConsoleOut or StandardError1757.5 SIMPLE_TEXT_OUTPUT Protocol1757.5.1 SIMPLE_TEXT_OUTPUT.Reset()1787.5.2 SIMPLE_TEXT_OUTPUT.OutputString()1797.5.3 SIMPLE_TEXT_OUTPUT.TestString()1827.5.4 SIMPLE_TEXT_OUTPUT.QueryMode()1837.5.5 SIMPLE_TEXT_OUTPUT.SetMode()1847.5.6 SIMPLE_TEXT_OUTPUT.SetAttribute()1857.5.7 SIMPLE_TEXT_OUTPUT.ClearScreen()1877.5.8 SIMPLE_TEXT_OUTPUT.SetCursorPosition()1887.5.9 SIMPLE_TEXT_OUTPUT.EnableCursor()1898 Block I/O Protocol1918.1 BLOCK_IO Protocol1918.1.1 EFI_BLOCK_IO.Reset()1948.1.2 EFI_BLOCK_IO.ReadBlocks()1958.1.3 EFI_BLOCK_IO.WriteBlocks()1978.1.4 BLOCK_IO.FlushBlocks()1999 Disk I/O Protocol2019.1 DISK_IO Protocol2019.1.1 EFI_DISK_IO.ReadDisk()2039.1.2 EFI_DISK_IO.WriteDisk()20410 File System Protocol20510.1 Simple File System Protocol20510.1.1 EFI_FILE_IO_INTERFACE.OpenVolume()20710.2 EFI_FILE Protocol20810.2.1 EFI_FILE.Open()21010.2.2 EFI_FILE.Close()21310.2.3 EFI_FILE.Delete()21410.2.4 EFI_FILE.Read()21510.2.5 EFI_FILE.Write()21610.2.6 EFI_FILE.SetPosition()21710.2.7 EFI_FILE.GetPosition()21810.2.8 EFI_FILE.GetInfo()21910.2.9 EFI_FILE.SetInfo()22010.2.10 EFI_FILE.Flush()22110.2.11 EFI_FILE_INFO22210.2.12 EFI_FILE_SYSTEM_INFO22410.2.13 EFI_FILE_SYSTEM_VOLUME_LABEL22511 Load File Protocol22711.1 LOAD_FILE Protocol22711.1.1 LOAD_FILE.LoadFile()22812 Serial I/O Protocol23112.1 SERIAL_IO Protocol23112.1.1 SERIAL_IO.Reset()23512.1.2 SERIAL_IO.SetAttributes()23612.1.3 SERIAL_IO.SetControl()23812.1.4 SERIAL_IO.GetControl()24012.1.5 SERIAL_IO.Write()24112.1.6 SERIAL_IO.Read()24213 Unicode Collation Protocol24313.1 UNICODE_COLLATION Protocol24313.1.1 UNICODE_COLLATION.StriColl()24513.1.2 UNICODE_COLLATION.MetaiMatch()24613.1.3 UNICODE_COLLATION.StrLwr()24813.1.4 UNICODE_COLLATION.StrUpr()24913.1.5 UNICODE_COLLATION.FatToStr()25013.1.6 UNICODE_COLLATION.StrToFat()25114 PXE Base Code Protocol25314.1 EFI_PXE_BASE_CODE Protocol25314.1.1 EFI_PXE_BASE_CODE.Start()26514.1.2 EFI_PXE_BASE_CODE.Stop()26814.1.3 EFI_PXE_BASE_CODE.Dhcp()26914.1.4 EFI_PXE_BASE_CODE.Discover()27114.1.5 EFI_PXE_BASE_CODE.Mtftp()27514.1.6 EFI_PXE_BASE_CODE.UdpWrite()27914.1.7 EFI_PXE_BASE_CODE.UdpRead()28114.1.8 EFI_PXE_BASE_CODE.SetIpFilter()28414.1.9 EFI_PXE_BASE_CODE.Arp()28514.1.10 EFI_PXE_BASE_CODE.SetParameters()28614.1.11 EFI_PXE_BASE_CODE.SetStationIp()28814.1.12 EFI_PXE_BASE_CODE.SetPackets()28914.2 EFI_PXE_BASE_CODE_CALLBACK Protocol29114.2.1 EFI_PXE_BASE_CODE_CALLBACK.Callback()29215 Simple Network Protocol29515.1 EFI_SIMPLE_NETWORK Protocol29515.1.1 EFI_SIMPLE_NETWORK.Start()30015.1.2 EFI_SIMPLE_NETWORK.Stop()30115.1.3 EFI_SIMPLE_NETWORK.Initialize()30215.1.4 EFI_SIMPLE_NETWORK.Reset()30315.1.5 EFI_SIMPLE_NETWORK.Shutdown()30415.1.6 EFI_SIMPLE_NETWORK.ReceiveFilters()30515.1.7 EFI_SIMPLE_NETWORK.StationAddress()30715.1.8 EFI_SIMPLE_NETWORK.Statistics()30815.1.9 EFI_SIMPLE_NETWORK.MCastIPtoMAC()31115.1.10 EFI_SIMPLE_NETWORK.NvData()31215.1.11 EFI_SIMPLE_NETWORK.GetStatus()31415.1.12 EFI_SIMPLE_NETWORK.Transmit()31615.1.13 EFI_SIMPLE_NETWORK.Receive()31815.2 NETWORK_INTERFACE_IDENTIFIER Protocol32016 File System Format32316.1 System Partition32316.1.1 File System Format32416.1.2 File Names32416.1.3 Directory Structure32416.2 Partition Discovery32616.2.1 EFI Partition Header32716.2.2 ISO-9660 and El Torito33216.2.3 Legacy Master Boot Record33216.2.4 Legacy Master Boot Record and GPT Partitions33416.3 Media Formats33516.3.1 Removable Media33516.3.2 Diskette33516.3.3 Hard Drive33516.3.4 CD-ROM and DVD-ROM33616.3.5 Network33617 Boot Manager33717.1 Firmware Boot Manager33717.2 Globally-Defined Variables34117.3 Boot Option Variables Default Behavior34317.4 Boot Mechanisms34317.4.1 Boot via Simple File Protocol34317.4.2 Boot via LOAD_FILE Protocol34418 PCI Expansion ROM34518.1 Standard PCI Expansion ROM Header34518.2 EFI PCI Expansion ROM Header34618.3 Multiple Image Format Support34718.4 EFI PCI Expansion ROM Driver347A GUID and Time Formats349B Console351B.1 SIMPLE_INPUT351B.2 SIMPLE_TEXT_OUTPUT352C Device Path Examples355C.1 Example Computer System355C.2 Legacy Floppy356C.3 IDE Disk357C.4 Secondary Root PCI Bus with PCI to PCI Bridge359C.5 ACPI Terms360C.6 EFI Device Path as a Name Space361D Status Codes363E Alphabetic Function Lists365F Glossary377G 32/64-Bit UNDI Specification391G.1 Introduction391G.1.1 Definitions391G.1.2 Referenced Specifications392G.1.3 OS Network Stacks394G.2 Overview396G.2.1 32/64-bit UNDI Interface396G.2.2 UNDI Command Format402G.3 UNDI C Definitions404G.3.1 Portability Macros404G.3.2 Miscellaneous Macros408G.3.3 Portability Types408G.3.4 Simple Types410G.3.5 Compound Types427G.4 UNDI Commands434G.4.1 Command Linking & Queuing435G.4.2 Get State436G.4.3 Start438G.4.4 Stop440G.4.5 Get Init Info441G.4.6 Get Config Info445G.4.7 Initialize448G.4.8 Reset452G.4.9 Shutdown453G.4.10 Interrupt Enables455G.4.11 Receive Filters457G.4.12 Station Address460G.4.13 Statistics462G.4.14 MCast IP To MAC466G.4.15 NvData467G.4.16 Get Status472G.4.17 Fill Header474G.4.18 Transmit478G.4.19 Receive482G.5 UNDI as an EFI Runtime Driver484H Index487Größe: 2,72 MBSeiten: 494Language: EnglishHandbuch öffnen