IPv6 Network Stack DXE Driver from AmiNetworkPkg/UefiNetworkStack/Ipv6/Ip6Dxe/.
Implements EFI_IP6_SERVICE_BINDING_PROTOCOL, EFI_IP6_PROTOCOL, EFI_IP6_CONFIG_PROTOCOL,
and EFI_HII_CONFIG_ACCESS_PROTOCOL. Provides IPv6 networking including Neighbor Discovery
(RFC 4861), MLDv1/v2 (RFC 3810), packet fragmentation, and HII-based configuration forms.
0x2C0 - 0x17440 (315 functions, ~92KB .text)
| Address | Name | Purpose |
|---|---|---|
| 0x548 | _ModuleEntryPoint | UEFI driver entry point |
| 0x5C4 | sub_5C4 | Driver library constructor (gST/gBS/gRT init, locate HII/DPC protocols) |
| 0x7D4 | sub_7D4 | Install driver binding and multiple protocol interfaces |
| 0x94C | sub_94C | DriverBinding Supported (MNP check) |
| 0xC80 | sub_C80 | Ip6CreateService (alloc ~4KB IP6_SERVICE struct) |
| 0x9C4 | sub_9C4 | Ip6DestroyService (cleanup all resources) |
| 0x1160 | sub_1160 | DriverBinding Start |
| 0x13F0 | sub_13F0 | DriverBinding Stop |
| 0x1694 | sub_1694 | Ip6ServiceCreateChild |
| 0x1818 | sub_1818 | Ip6ServiceDestroyChild |
| 0x1FB8 | sub_1FB8 | Ip6Output (packet output/transmit/fragment) |
| 0x324C | sub_324C | Ip6GetModeData |
| 0x3950 | sub_3950 | Ip6Configure |
| 0x3AE4 | sub_3AE4 | Ip6Groups |
| 0x3BD0 | sub_3BD0 | Ip6Routes |
| 0x3D20 | sub_3D20 | Ip6Neighbors |
| 0x3F4C | sub_3F4C | Ip6Transmit |
| 0x439C | sub_439C | Ip6Receive |
| 0x44C4 | sub_44C4 | Ip6Cancel |
| 0x4684 | sub_4684 | Ip6Poll |
| 0x7988 | sub_7988 | Ip6ConfigSetData |
| 0x8770 | sub_8770 | Ip6ConfigGetData |
| 0x8DD8 | sub_8DD8 | Ip6ConfigRegisterNotify |
| 0x9078 | sub_9078 | Ip6ConfigUnregisterNotify |
| 0xAB40 | sub_AB40 | Timer tick handler (periodic ND/MLD processing) |
| 0x6EC0 | sub_6EC0 | Receive data processing callback |
| 0x7EB0 | sub_7EB0 | DPC queue handler |
| 0x8068 | sub_8068 | DPC packet demux handler |
| 0xFCC0 | sub_FCC0 | Ip6ConfigNvCallback (HII form callback) |
| 0xEF84 | sub_EF84 | Ip6ConfigNvExtractConfig |
| 0xF814 | sub_F814 | Ip6ConfigNvRouteConfig |
_ModuleEntryPoint -- Standard UEFI driver entry point. Called by the DXE core on driver load.sub_94C -- EFI_DRIVER_BINDING_PROTOCOL.Supported()sub_1160 -- EFI_DRIVER_BINDING_PROTOCOL.Start()sub_13F0 -- EFI_DRIVER_BINDING_PROTOCOL.Stop()sub_1694 -- EFI_IP6_SERVICE_BINDING_PROTOCOL.CreateChild()sub_1818 -- EFI_IP6_SERVICE_BINDING_PROTOCOL.DestroyChild()sub_324C -- EFI_IP6_PROTOCOL.GetModeData()sub_3950 -- EFI_IP6_PROTOCOL.Configure()sub_3AE4 -- EFI_IP6_PROTOCOL.Groups()sub_3BD0 -- EFI_IP6_PROTOCOL.Routes()sub_3D20 -- EFI_IP6_PROTOCOL.Neighbors()sub_3F4C -- EFI_IP6_PROTOCOL.Transmit()sub_439C -- EFI_IP6_PROTOCOL.Receive()sub_44C4 -- EFI_IP6_PROTOCOL.Cancel()sub_4684 -- EFI_IP6_PROTOCOL.Poll()sub_7988 -- EFI_IP6_CONFIG_PROTOCOL.SetData()sub_8770 -- EFI_IP6_CONFIG_PROTOCOL.GetData()sub_8DD8 -- EFI_IP6_CONFIG_PROTOCOL.RegisterNotify()sub_9078 -- EFI_IP6_CONFIG_PROTOCOL.UnregisterNotify()sub_EF84 -- EFI_HII_CONFIG_ACCESS_PROTOCOL.ExtractConfig()sub_F814 -- EFI_HII_CONFIG_ACCESS_PROTOCOL.RouteConfig()sub_FCC0 -- EFI_HII_CONFIG_ACCESS_PROTOCOL.Callback()| GUID | Name | Used At |
|---|---|---|
| {18A031AB-B443-4D1A-A5C0-0C09261E9F71} | gEfiIp6ProtocolGuid | 0x1BCF8 |
| {107A772C-D5E1-11D4-9A46-0090273FC14D} | gEfiIp6ConfigProtocolGuid | 0x1BD28 |
| {2C8759D5-5C2D-66EF-925F-B66C101957E2} | gEfiIp6ServiceBindingProtocolGuid | 0x1BD18 |
| {F44C00EE-1F2C-4A00-AA09-1C9F3E0800A3} | gEfiManagedNetworkProtocolGuid | 0x1BD08 |
| {F36FF770-A7E1-42CF-9ED2-56F0F271F44C} | gEfiManagedNetworkServiceBindingProtocolGuid | 0x1BCD8 |
| {0FD96974-23AA-4CDC-B9CB-98D17750322A} | gEfiHiiDatabaseProtocolGuid | 0x1BC88 |
| {EF9FC172-A1B2-4693-B327-6D32FC416042} | gEfiHiiStringProtocolGuid | 0x1BC68 |
| {587E72D7-CC50-4F79-8209-CA291FC1A10F} | gEfiHiiConfigRoutingProtocolGuid | 0x1BC48 |
| {31A6406A-6BDF-4E46-B2A2-EBAA89C40920} | gEfiHiiImageProtocolGuid (presumed) | 0x1BC58 |
Signature: 'IP6S' = 0x53364950
Estimated layout:
Offset | Size | Field |
--------|------|-------|
+0 | 4 | Signature (0x53364950) |
+32 | 8 | Driver binding handle (controller) |
+40 | 8 | MNP handle |
+72 | 8 | Default interface (IpIf) |
+80 | 8 | MNP protocol pointer |
+88 | 8 | Configured flag |
+96 (0x60) | 8 | MNP child handle |
+104 (0x68) | 8 | MNP service binding protocol |
+136 (0x88) | ~16 | Timer event |
+264 (0x108) | 8 | Ip6Config instance |
+296 (0x128) | 4 | Address count |
+300 (0x12C) | 52 | Station address config |
+2192 (0x890) | 16 | Link-local address |
+2208 (0x8A0) | 1 | Configured flag |
+2209 (0x8A1) | 1 | Destroying flag |
+4184 (0x1058) | 4 | Interface count |
| Address | Name | Purpose |
|---|---|---|
| 0x1C160 | byte_1C160 | Driver unloaded flag |
| 0x1C168 | qword_1C168 | Driver binding handle (unload) |
| 0x1C170 | qword_1C170 | Host name list from NetworkStackVar |
| 0x1C178 | SystemTable | gST pointer |
| 0x1C180 | BootServices | gBS pointer |
| 0x1C188 | ImageHandle | gImageHandle pointer |
| 0x1C190 | RuntimeServices | gRT pointer |
| 0x1C1A0 | qword_1C1A0 | HOB list pointer (sub_13EF0) |
| 0x1C1A8 | qword_1C1A8 | gHiiConfigRouting |
| 0x1C1B0 | qword_1C1B0 | gHiiDatabase |
| 0x1C1B8 | unk_1C1B8 | gHiiImage (presumed) |
| 0x1C1C0 | unk_1C1C0 | gHiiString |
| 0x1C1C8 | qword_1C1C8 | HII-related pointer |
| 0x1C1D8 | n3 | CMOS debug level byte |
| 0x1C1E0 | qword_1C1E0 | gDpc protocol |
| 0x1BDA8 | ImageHandle_0 | First driver binding handle |
| 0x1BDB0 | ImageHandle_1 | Second driver binding handle |
_ModuleEntryPoint (0x548) -> sub_5C4 (init globals, locate HII) -> sub_7D4 (install protocols)sub_94C (Supported: MNP check) -> sub_1160 (Start) -> sub_C80 (CreateService) -> sub_7EB0 (open MNP) -> sub_9CA0 (init config) -> sub_AB40 (start timer)sub_3F4C (IP6 Transmit) -> sub_1FB8 (Output: route lookup, fragment) -> sub_1B40 (source addr selection) -> MNP transmitsub_6EC0 (demux: ICMPv6->ND, else->IP layer) -> sub_439C (IP6 Receive)sub_AB40 -> ND retransmission, neighbor reachability probing, DADsub_FCC0 (Callback) -> process data types (InterfaceID, HostAddress, Gateway, DNS, Route) -> sub_7988 (SetData)sub_9C4 (DestroyService) -> stop timers, close MNP, flush lists, free children| Source File | Address Range |
|---|---|
| Ip6Driver.c | 0x94C - 0x1A28 |
| Ip6Output.c | 0x1A28 - 0x2B54 |
| Ip6Common.c | 0x2C04 - 0x38A4, 0xD1A4 - 0xDA30 |
| Ip6Impl.c | 0x324C - 0x4724 |
| Ip6Nd.c | 0x47B0 - 0x6DE4 |
| Ip6Mld.c | 0xACAC - 0xBA98 |
| Ip6ConfigImpl.c | 0x7988 - 0x9D20 |
| Ip6ConfigNv.c | 0xE7E0 - 0x10484 |
e:\hs\ suggesting build host path