10 UEFI Service Binding Protocol
The Service Binding Protocol is not associated with a single GUID value.
Instead, each Service Binding Protocol GUID value is paired with another
protocol providing a specific set of services. The protocol interfaces for all
Service Binding Protocols are identical and contain the services
CreateChild()
and DestroyChild()
. When CreateChild()
is called, a new
handle is created with the associated protocol installed. When DestroyChild()
is called, the associated protocol is uninstalled and the handle is freed.
The UEFI Specification defines the following Service Binding Protocol GUIDs.
Table 22-Service Binding Protocols
Service Binding Protocol | Associated Protocol |
---|---|
EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL |
EFI_MANAGED_NETWORK_PROTOCOL |
EFI_ARP_SERVICE_BINDING_PROTOCOL |
EFI_ARP_PROTOCOL |
EFI_EAP_SERVICE_BINDING_PROTOCOL |
EFI_EAP_PROTOCOL |
EFI_IP4_SERVICE_BINDING_PROTOCOL |
EFI_IP4_PROTOCOL |
EFI_IP6_SERVICE_BINDING_PROTOCOL |
EFI_IP6_PROTOCOL |
EFI_TCP4_SERVICE_BINDING_PROTOCOL |
EFI_TCP4_PROTOCOL |
EFI_TCP6_SERVICE_BINDING_PROTOCOL |
EFI_TCP6_PROTOCOL |
EFI_UDP4_SERVICE_BINDING_PROTOCOL |
EFI_UDP4_PROTOCOL |
EFI_UDP6_SERVICE_BINDING_PROTOCOL |
EFI_UDP6_PROTOCOL |
EFI_MTFTP4_SERVICE_BINDING_PROTOCOL |
EFI_MTFTP4_PROTOCOL |
EFI_MTFTP6_SERVICE_BINDING_PROTOCOL |
EFI_MTFTP6_PROTOCOL |
EFI_DHCP4_SERVICE_BINDING_PROTOCOL |
EFI_DHCP4_PROTOCOL |
EFI_DHCP6_SERVICE_BINDING_PROTOCOL |
EFI_DHCP6_PROTOCOL |
EFI_HASH_SERVICE_BINDING_PROTOCOL |
EFI_HASH_PROTOCOL |
The Service Binding Protocol feature is required only if the associated protocol requires a Service Binding Protocol to produce its services and it defines a GUID value for that Service Binding Protocol. The table above lists the protocols defined in the UEFI Specification requiring the Service Binding Protocol feature. None of the other protocols defined by the UEFI Specification require a Service Binding Protocol.
For new protocols, a decision must be made to determine if the new protocol requires a Service Binding Protocol. The Driver Binding Protocol is usually sufficient for managing devices on common bus topologies and for the simple layering of protocols on a single device. When more complex tree or graph topologies are required and, with the expectation that services of the new protocol be required by multiple consumers, a Service Binding Protocol should be considered.