1*f334afcfSToomas Soome /** @file 2*f334afcfSToomas Soome This file provides a definition of the EFI IPv6 Configuration 3*f334afcfSToomas Soome Protocol. 4*f334afcfSToomas Soome 5*f334afcfSToomas Soome Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR> 6*f334afcfSToomas Soome SPDX-License-Identifier: BSD-2-Clause-Patent 7*f334afcfSToomas Soome 8*f334afcfSToomas Soome **/ 9*f334afcfSToomas Soome 10*f334afcfSToomas Soome #ifndef __EFI_IP6CONFIG_PROTOCOL_H__ 11*f334afcfSToomas Soome #define __EFI_IP6CONFIG_PROTOCOL_H__ 12*f334afcfSToomas Soome 13*f334afcfSToomas Soome #include <Protocol/Ip6.h> 14*f334afcfSToomas Soome 15*f334afcfSToomas Soome #define EFI_IP6_CONFIG_PROTOCOL_GUID \ 16*f334afcfSToomas Soome { \ 17*f334afcfSToomas Soome 0x937fe521, 0x95ae, 0x4d1a, {0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a } \ 18*f334afcfSToomas Soome } 19*f334afcfSToomas Soome 20*f334afcfSToomas Soome typedef struct _EFI_IP6_CONFIG_PROTOCOL EFI_IP6_CONFIG_PROTOCOL; 21*f334afcfSToomas Soome 22*f334afcfSToomas Soome /// 23*f334afcfSToomas Soome /// EFI_IP6_CONFIG_DATA_TYPE 24*f334afcfSToomas Soome /// 25*f334afcfSToomas Soome typedef enum { 26*f334afcfSToomas Soome /// 27*f334afcfSToomas Soome /// The interface information of the communication 28*f334afcfSToomas Soome /// device this EFI IPv6 Configuration Protocol instance manages. 29*f334afcfSToomas Soome /// This type of data is read only.The corresponding Data is of type 30*f334afcfSToomas Soome /// EFI_IP6_CONFIG_INTERFACE_INFO. 31*f334afcfSToomas Soome /// 32*f334afcfSToomas Soome Ip6ConfigDataTypeInterfaceInfo, 33*f334afcfSToomas Soome /// 34*f334afcfSToomas Soome /// The alternative interface ID for the 35*f334afcfSToomas Soome /// communication device this EFI IPv6 Configuration Protocol 36*f334afcfSToomas Soome /// instance manages if the link local IPv6 address generated from 37*f334afcfSToomas Soome /// the interfaced ID based on the default source the EFI IPv6 38*f334afcfSToomas Soome /// Protocol uses is a duplicate address. The length of the interface 39*f334afcfSToomas Soome /// ID is 64 bit. The corresponding Data is of type 40*f334afcfSToomas Soome /// EFI_IP6_CONFIG_INTERFACE_ID. 41*f334afcfSToomas Soome /// 42*f334afcfSToomas Soome Ip6ConfigDataTypeAltInterfaceId, 43*f334afcfSToomas Soome /// 44*f334afcfSToomas Soome /// The general configuration policy for the EFI IPv6 network 45*f334afcfSToomas Soome /// stack running on the communication device this EFI IPv6 46*f334afcfSToomas Soome /// Configuration Protocol instance manages. The policy will affect 47*f334afcfSToomas Soome /// other configuration settings. The corresponding Data is of type 48*f334afcfSToomas Soome /// EFI_IP6_CONFIG_POLICY. 49*f334afcfSToomas Soome /// 50*f334afcfSToomas Soome Ip6ConfigDataTypePolicy, 51*f334afcfSToomas Soome /// 52*f334afcfSToomas Soome /// The number of consecutive 53*f334afcfSToomas Soome /// Neighbor Solicitation messages sent while performing Duplicate 54*f334afcfSToomas Soome /// Address Detection on a tentative address. A value of zero 55*f334afcfSToomas Soome /// indicates that Duplicate Address Detection will not be performed 56*f334afcfSToomas Soome /// on tentative addresses. The corresponding Data is of type 57*f334afcfSToomas Soome /// EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS. 58*f334afcfSToomas Soome /// 59*f334afcfSToomas Soome Ip6ConfigDataTypeDupAddrDetectTransmits, 60*f334afcfSToomas Soome /// 61*f334afcfSToomas Soome /// The station addresses set manually for the EFI 62*f334afcfSToomas Soome /// IPv6 network stack. It is only configurable when the policy is 63*f334afcfSToomas Soome /// Ip6ConfigPolicyManual. The corresponding Data is a 64*f334afcfSToomas Soome /// pointer to an array of EFI_IPv6_ADDRESS instances. When 65*f334afcfSToomas Soome /// DataSize is 0 and Data is NULL, the existing configuration 66*f334afcfSToomas Soome /// is cleared from the EFI IPv6 Configuration Protocol instance. 67*f334afcfSToomas Soome /// 68*f334afcfSToomas Soome Ip6ConfigDataTypeManualAddress, 69*f334afcfSToomas Soome /// 70*f334afcfSToomas Soome /// The gateway addresses set manually for the EFI IPv6 71*f334afcfSToomas Soome /// network stack running on the communication device this EFI 72*f334afcfSToomas Soome /// IPv6 Configuration Protocol manages. It is not configurable when 73*f334afcfSToomas Soome /// the policy is Ip6ConfigPolicyAutomatic. The gateway 74*f334afcfSToomas Soome /// addresses must be unicast IPv6 addresses. The corresponding 75*f334afcfSToomas Soome /// Data is a pointer to an array of EFI_IPv6_ADDRESS instances. 76*f334afcfSToomas Soome /// When DataSize is 0 and Data is NULL, the existing configuration 77*f334afcfSToomas Soome /// is cleared from the EFI IPv6 Configuration Protocol instance. 78*f334afcfSToomas Soome /// 79*f334afcfSToomas Soome Ip6ConfigDataTypeGateway, 80*f334afcfSToomas Soome /// 81*f334afcfSToomas Soome /// The DNS server list for the EFI IPv6 network stack 82*f334afcfSToomas Soome /// running on the communication device this EFI IPv6 83*f334afcfSToomas Soome /// Configuration Protocol manages. It is not configurable when the 84*f334afcfSToomas Soome /// policy is Ip6ConfigPolicyAutomatic.The DNS server 85*f334afcfSToomas Soome /// addresses must be unicast IPv6 addresses. The corresponding 86*f334afcfSToomas Soome /// Data is a pointer to an array of EFI_IPv6_ADDRESS instances. 87*f334afcfSToomas Soome /// When DataSize is 0 and Data is NULL, the existing configuration 88*f334afcfSToomas Soome /// is cleared from the EFI IPv6 Configuration Protocol instance. 89*f334afcfSToomas Soome /// 90*f334afcfSToomas Soome Ip6ConfigDataTypeDnsServer, 91*f334afcfSToomas Soome /// 92*f334afcfSToomas Soome /// The number of this enumeration memebers. 93*f334afcfSToomas Soome /// 94*f334afcfSToomas Soome Ip6ConfigDataTypeMaximum 95*f334afcfSToomas Soome } EFI_IP6_CONFIG_DATA_TYPE; 96*f334afcfSToomas Soome 97*f334afcfSToomas Soome /// 98*f334afcfSToomas Soome /// EFI_IP6_CONFIG_INTERFACE_INFO 99*f334afcfSToomas Soome /// describes the operational state of the interface this 100*f334afcfSToomas Soome /// EFI IPv6 Configuration Protocol instance manages. 101*f334afcfSToomas Soome /// 102*f334afcfSToomas Soome typedef struct { 103*f334afcfSToomas Soome /// 104*f334afcfSToomas Soome /// The name of the interface. It is a NULL-terminated string. 105*f334afcfSToomas Soome /// 106*f334afcfSToomas Soome CHAR16 Name[32]; 107*f334afcfSToomas Soome /// 108*f334afcfSToomas Soome /// The interface type of the network interface. 109*f334afcfSToomas Soome /// 110*f334afcfSToomas Soome UINT8 IfType; 111*f334afcfSToomas Soome /// 112*f334afcfSToomas Soome /// The size, in bytes, of the network interface's hardware address. 113*f334afcfSToomas Soome /// 114*f334afcfSToomas Soome UINT32 HwAddressSize; 115*f334afcfSToomas Soome /// 116*f334afcfSToomas Soome /// The hardware address for the network interface. 117*f334afcfSToomas Soome /// 118*f334afcfSToomas Soome EFI_MAC_ADDRESS HwAddress; 119*f334afcfSToomas Soome /// 120*f334afcfSToomas Soome /// Number of EFI_IP6_ADDRESS_INFO structures pointed to by AddressInfo. 121*f334afcfSToomas Soome /// 122*f334afcfSToomas Soome UINT32 AddressInfoCount; 123*f334afcfSToomas Soome /// 124*f334afcfSToomas Soome /// Pointer to an array of EFI_IP6_ADDRESS_INFO instances 125*f334afcfSToomas Soome /// which contain the local IPv6 addresses and the corresponding 126*f334afcfSToomas Soome /// prefix length information. Set to NULL if AddressInfoCount 127*f334afcfSToomas Soome /// is zero. 128*f334afcfSToomas Soome /// 129*f334afcfSToomas Soome EFI_IP6_ADDRESS_INFO *AddressInfo; 130*f334afcfSToomas Soome /// 131*f334afcfSToomas Soome /// Number of route table entries in the following RouteTable. 132*f334afcfSToomas Soome /// 133*f334afcfSToomas Soome UINT32 RouteCount; 134*f334afcfSToomas Soome /// 135*f334afcfSToomas Soome /// The route table of the IPv6 network stack runs on this interface. 136*f334afcfSToomas Soome /// Set to NULL if RouteCount is zero. 137*f334afcfSToomas Soome /// 138*f334afcfSToomas Soome EFI_IP6_ROUTE_TABLE *RouteTable; 139*f334afcfSToomas Soome } EFI_IP6_CONFIG_INTERFACE_INFO; 140*f334afcfSToomas Soome 141*f334afcfSToomas Soome /// 142*f334afcfSToomas Soome /// EFI_IP6_CONFIG_INTERFACE_ID 143*f334afcfSToomas Soome /// describes the 64-bit interface ID. 144*f334afcfSToomas Soome /// 145*f334afcfSToomas Soome typedef struct { 146*f334afcfSToomas Soome UINT8 Id[8]; 147*f334afcfSToomas Soome } EFI_IP6_CONFIG_INTERFACE_ID; 148*f334afcfSToomas Soome 149*f334afcfSToomas Soome /// 150*f334afcfSToomas Soome /// EFI_IP6_CONFIG_POLICY 151*f334afcfSToomas Soome /// defines the general configuration policy the EFI IPv6 152*f334afcfSToomas Soome /// Configuration Protocol supports. 153*f334afcfSToomas Soome /// 154*f334afcfSToomas Soome typedef enum { 155*f334afcfSToomas Soome /// 156*f334afcfSToomas Soome /// Under this policy, the IpI6ConfigDataTypeManualAddress, 157*f334afcfSToomas Soome /// Ip6ConfigDataTypeGateway and Ip6ConfigDataTypeDnsServer 158*f334afcfSToomas Soome /// configuration data are required to be set manually. 159*f334afcfSToomas Soome /// The EFI IPv6 Protocol will get all required configuration 160*f334afcfSToomas Soome /// such as address, prefix and gateway settings from the EFI 161*f334afcfSToomas Soome /// IPv6 Configuration protocol. 162*f334afcfSToomas Soome /// 163*f334afcfSToomas Soome Ip6ConfigPolicyManual, 164*f334afcfSToomas Soome /// 165*f334afcfSToomas Soome /// Under this policy, the IpI6ConfigDataTypeManualAddress, 166*f334afcfSToomas Soome /// Ip6ConfigDataTypeGateway and Ip6ConfigDataTypeDnsServer 167*f334afcfSToomas Soome /// configuration data are not allowed to set via SetData(). 168*f334afcfSToomas Soome /// All of these configurations are retrieved from some auto 169*f334afcfSToomas Soome /// configuration mechanism. 170*f334afcfSToomas Soome /// The EFI IPv6 Protocol will use the IPv6 stateless address 171*f334afcfSToomas Soome /// autoconfiguration mechanism and/or the IPv6 stateful address 172*f334afcfSToomas Soome /// autoconfiguration mechanism described in the related RFCs to 173*f334afcfSToomas Soome /// get address and other configuration information 174*f334afcfSToomas Soome /// 175*f334afcfSToomas Soome Ip6ConfigPolicyAutomatic 176*f334afcfSToomas Soome } EFI_IP6_CONFIG_POLICY; 177*f334afcfSToomas Soome 178*f334afcfSToomas Soome /// 179*f334afcfSToomas Soome /// EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS 180*f334afcfSToomas Soome /// describes the number of consecutive Neighbor Solicitation messages sent 181*f334afcfSToomas Soome /// while performing Duplicate Address Detection on a tentative address. 182*f334afcfSToomas Soome /// The default value for a newly detected communication device is 1. 183*f334afcfSToomas Soome /// 184*f334afcfSToomas Soome typedef struct { 185*f334afcfSToomas Soome UINT32 DupAddrDetectTransmits; ///< The number of consecutive Neighbor Solicitation messages sent. 186*f334afcfSToomas Soome } EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS; 187*f334afcfSToomas Soome 188*f334afcfSToomas Soome /// 189*f334afcfSToomas Soome /// EFI_IP6_CONFIG_MANUAL_ADDRESS 190*f334afcfSToomas Soome /// is used to set the station address information for the EFI IPv6 network 191*f334afcfSToomas Soome /// stack manually when the policy is Ip6ConfigPolicyManual. 192*f334afcfSToomas Soome /// 193*f334afcfSToomas Soome typedef struct { 194*f334afcfSToomas Soome EFI_IPv6_ADDRESS Address; ///< The IPv6 unicast address. 195*f334afcfSToomas Soome BOOLEAN IsAnycast; ///< Set to TRUE if Address is anycast. 196*f334afcfSToomas Soome UINT8 PrefixLength; ///< The length, in bits, of the prefix associated with this Address. 197*f334afcfSToomas Soome } EFI_IP6_CONFIG_MANUAL_ADDRESS; 198*f334afcfSToomas Soome 199*f334afcfSToomas Soome /** 200*f334afcfSToomas Soome Set the configuration for the EFI IPv6 network stack running on the communication 201*f334afcfSToomas Soome device this EFI IPv6 Configuration Protocol instance manages. 202*f334afcfSToomas Soome 203*f334afcfSToomas Soome This function is used to set the configuration data of type DataType for the EFI 204*f334afcfSToomas Soome IPv6 network stack running on the communication device this EFI IPv6 Configuration 205*f334afcfSToomas Soome Protocol instance manages. 206*f334afcfSToomas Soome 207*f334afcfSToomas Soome The DataSize is used to calculate the count of structure instances in the Data for 208*f334afcfSToomas Soome some DataType that multiple structure instances are allowed. 209*f334afcfSToomas Soome 210*f334afcfSToomas Soome This function is always non-blocking. When setting some type of configuration data, 211*f334afcfSToomas Soome an asynchronous process is invoked to check the correctness of the data, such as 212*f334afcfSToomas Soome doing Duplicate Address Detection on the manually set local IPv6 addresses. 213*f334afcfSToomas Soome EFI_NOT_READY is returned immediately to indicate that such an asynchronous process 214*f334afcfSToomas Soome is invoked and the process is not finished yet. The caller willing to get the result 215*f334afcfSToomas Soome of the asynchronous process is required to call RegisterDataNotify() to register an 216*f334afcfSToomas Soome event on the specified configuration data. Once the event is signaled, the caller 217*f334afcfSToomas Soome can call GetData() to get back the configuration data in order to know the result. 218*f334afcfSToomas Soome For other types of configuration data that do not require an asynchronous configuration 219*f334afcfSToomas Soome process, the result of the operation is immediately returned. 220*f334afcfSToomas Soome 221*f334afcfSToomas Soome @param[in] This Pointer to the EFI_IP6_CONFIG_PROTOCOL instance. 222*f334afcfSToomas Soome @param[in] DataType The type of data to set. 223*f334afcfSToomas Soome @param[in] DataSize Size of the buffer pointed to by Data in bytes. 224*f334afcfSToomas Soome @param[in] Data The data buffer to set. The type of the data buffer is 225*f334afcfSToomas Soome associated with the DataType. 226*f334afcfSToomas Soome 227*f334afcfSToomas Soome @retval EFI_SUCCESS The specified configuration data for the EFI IPv6 228*f334afcfSToomas Soome network stack is set successfully. 229*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER One or more of the following are TRUE: 230*f334afcfSToomas Soome - This is NULL. 231*f334afcfSToomas Soome - One or more fields in Data and DataSize do not match the 232*f334afcfSToomas Soome requirement of the data type indicated by DataType. 233*f334afcfSToomas Soome @retval EFI_WRITE_PROTECTED The specified configuration data is read-only or the specified 234*f334afcfSToomas Soome configuration data can not be set under the current policy 235*f334afcfSToomas Soome @retval EFI_ACCESS_DENIED Another set operation on the specified configuration 236*f334afcfSToomas Soome data is already in process. 237*f334afcfSToomas Soome @retval EFI_NOT_READY An asynchronous process is invoked to set the specified 238*f334afcfSToomas Soome configuration data and the process is not finished yet. 239*f334afcfSToomas Soome @retval EFI_BAD_BUFFER_SIZE The DataSize does not match the size of the type 240*f334afcfSToomas Soome indicated by DataType. 241*f334afcfSToomas Soome @retval EFI_UNSUPPORTED This DataType is not supported. 242*f334afcfSToomas Soome @retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. 243*f334afcfSToomas Soome @retval EFI_DEVICE_ERROR An unexpected system error or network error occurred. 244*f334afcfSToomas Soome 245*f334afcfSToomas Soome **/ 246*f334afcfSToomas Soome typedef 247*f334afcfSToomas Soome EFI_STATUS 248*f334afcfSToomas Soome (EFIAPI *EFI_IP6_CONFIG_SET_DATA)( 249*f334afcfSToomas Soome IN EFI_IP6_CONFIG_PROTOCOL *This, 250*f334afcfSToomas Soome IN EFI_IP6_CONFIG_DATA_TYPE DataType, 251*f334afcfSToomas Soome IN UINTN DataSize, 252*f334afcfSToomas Soome IN VOID *Data 253*f334afcfSToomas Soome ); 254*f334afcfSToomas Soome 255*f334afcfSToomas Soome /** 256*f334afcfSToomas Soome Get the configuration data for the EFI IPv6 network stack running on the communication 257*f334afcfSToomas Soome device this EFI IPv6 Configuration Protocol instance manages. 258*f334afcfSToomas Soome 259*f334afcfSToomas Soome This function returns the configuration data of type DataType for the EFI IPv6 network 260*f334afcfSToomas Soome stack running on the communication device this EFI IPv6 Configuration Protocol instance 261*f334afcfSToomas Soome manages. 262*f334afcfSToomas Soome 263*f334afcfSToomas Soome The caller is responsible for allocating the buffer used to return the specified 264*f334afcfSToomas Soome configuration data and the required size will be returned to the caller if the size of 265*f334afcfSToomas Soome the buffer is too small. 266*f334afcfSToomas Soome 267*f334afcfSToomas Soome EFI_NOT_READY is returned if the specified configuration data is not ready due to an 268*f334afcfSToomas Soome already in progress asynchronous configuration process. The caller can call RegisterDataNotify() 269*f334afcfSToomas Soome to register an event on the specified configuration data. Once the asynchronous configuration 270*f334afcfSToomas Soome process is finished, the event will be signaled and a subsequent GetData() call will return 271*f334afcfSToomas Soome the specified configuration data. 272*f334afcfSToomas Soome 273*f334afcfSToomas Soome @param[in] This Pointer to the EFI_IP6_CONFIG_PROTOCOL instance. 274*f334afcfSToomas Soome @param[in] DataType The type of data to get. 275*f334afcfSToomas Soome @param[in,out] DataSize On input, in bytes, the size of Data. On output, in bytes, the 276*f334afcfSToomas Soome size of buffer required to store the specified configuration data. 277*f334afcfSToomas Soome @param[in] Data The data buffer in which the configuration data is returned. The 278*f334afcfSToomas Soome type of the data buffer is associated with the DataType. 279*f334afcfSToomas Soome 280*f334afcfSToomas Soome @retval EFI_SUCCESS The specified configuration data is got successfully. 281*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER One or more of the followings are TRUE: 282*f334afcfSToomas Soome - This is NULL. 283*f334afcfSToomas Soome - DataSize is NULL. 284*f334afcfSToomas Soome - Data is NULL if *DataSize is not zero. 285*f334afcfSToomas Soome @retval EFI_BUFFER_TOO_SMALL The size of Data is too small for the specified configuration data 286*f334afcfSToomas Soome and the required size is returned in DataSize. 287*f334afcfSToomas Soome @retval EFI_NOT_READY The specified configuration data is not ready due to an already in 288*f334afcfSToomas Soome progress asynchronous configuration process. 289*f334afcfSToomas Soome @retval EFI_NOT_FOUND The specified configuration data is not found. 290*f334afcfSToomas Soome 291*f334afcfSToomas Soome **/ 292*f334afcfSToomas Soome typedef 293*f334afcfSToomas Soome EFI_STATUS 294*f334afcfSToomas Soome (EFIAPI *EFI_IP6_CONFIG_GET_DATA)( 295*f334afcfSToomas Soome IN EFI_IP6_CONFIG_PROTOCOL *This, 296*f334afcfSToomas Soome IN EFI_IP6_CONFIG_DATA_TYPE DataType, 297*f334afcfSToomas Soome IN OUT UINTN *DataSize, 298*f334afcfSToomas Soome IN VOID *Data OPTIONAL 299*f334afcfSToomas Soome ); 300*f334afcfSToomas Soome 301*f334afcfSToomas Soome /** 302*f334afcfSToomas Soome Register an event that is to be signaled whenever a configuration process on the specified 303*f334afcfSToomas Soome configuration data is done. 304*f334afcfSToomas Soome 305*f334afcfSToomas Soome This function registers an event that is to be signaled whenever a configuration process 306*f334afcfSToomas Soome on the specified configuration data is done. An event can be registered for different DataType 307*f334afcfSToomas Soome simultaneously and the caller is responsible for determining which type of configuration data 308*f334afcfSToomas Soome causes the signaling of the event in such case. 309*f334afcfSToomas Soome 310*f334afcfSToomas Soome @param[in] This Pointer to the EFI_IP6_CONFIG_PROTOCOL instance. 311*f334afcfSToomas Soome @param[in] DataType The type of data to unregister the event for. 312*f334afcfSToomas Soome @param[in] Event The event to register. 313*f334afcfSToomas Soome 314*f334afcfSToomas Soome @retval EFI_SUCCESS The notification event for the specified configuration data is 315*f334afcfSToomas Soome registered. 316*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER This is NULL or Event is NULL. 317*f334afcfSToomas Soome @retval EFI_UNSUPPORTED The configuration data type specified by DataType is not 318*f334afcfSToomas Soome supported. 319*f334afcfSToomas Soome @retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated. 320*f334afcfSToomas Soome @retval EFI_ACCESS_DENIED The Event is already registered for the DataType. 321*f334afcfSToomas Soome 322*f334afcfSToomas Soome **/ 323*f334afcfSToomas Soome typedef 324*f334afcfSToomas Soome EFI_STATUS 325*f334afcfSToomas Soome (EFIAPI *EFI_IP6_CONFIG_REGISTER_NOTIFY)( 326*f334afcfSToomas Soome IN EFI_IP6_CONFIG_PROTOCOL *This, 327*f334afcfSToomas Soome IN EFI_IP6_CONFIG_DATA_TYPE DataType, 328*f334afcfSToomas Soome IN EFI_EVENT Event 329*f334afcfSToomas Soome ); 330*f334afcfSToomas Soome 331*f334afcfSToomas Soome /** 332*f334afcfSToomas Soome Remove a previously registered event for the specified configuration data. 333*f334afcfSToomas Soome 334*f334afcfSToomas Soome This function removes a previously registered event for the specified configuration data. 335*f334afcfSToomas Soome 336*f334afcfSToomas Soome @param[in] This Pointer to the EFI_IP6_CONFIG_PROTOCOL instance. 337*f334afcfSToomas Soome @param[in] DataType The type of data to remove the previously registered event for. 338*f334afcfSToomas Soome @param[in] Event The event to unregister. 339*f334afcfSToomas Soome 340*f334afcfSToomas Soome @retval EFI_SUCCESS The event registered for the specified configuration data is removed. 341*f334afcfSToomas Soome @retval EFI_INVALID_PARAMETER This is NULL or Event is NULL. 342*f334afcfSToomas Soome @retval EFI_NOT_FOUND The Event has not been registered for the specified 343*f334afcfSToomas Soome DataType. 344*f334afcfSToomas Soome 345*f334afcfSToomas Soome **/ 346*f334afcfSToomas Soome typedef 347*f334afcfSToomas Soome EFI_STATUS 348*f334afcfSToomas Soome (EFIAPI *EFI_IP6_CONFIG_UNREGISTER_NOTIFY)( 349*f334afcfSToomas Soome IN EFI_IP6_CONFIG_PROTOCOL *This, 350*f334afcfSToomas Soome IN EFI_IP6_CONFIG_DATA_TYPE DataType, 351*f334afcfSToomas Soome IN EFI_EVENT Event 352*f334afcfSToomas Soome ); 353*f334afcfSToomas Soome 354*f334afcfSToomas Soome /// 355*f334afcfSToomas Soome /// The EFI_IP6_CONFIG_PROTOCOL provides the mechanism to set and get various 356*f334afcfSToomas Soome /// types of configurations for the EFI IPv6 network stack. 357*f334afcfSToomas Soome /// 358*f334afcfSToomas Soome struct _EFI_IP6_CONFIG_PROTOCOL { 359*f334afcfSToomas Soome EFI_IP6_CONFIG_SET_DATA SetData; 360*f334afcfSToomas Soome EFI_IP6_CONFIG_GET_DATA GetData; 361*f334afcfSToomas Soome EFI_IP6_CONFIG_REGISTER_NOTIFY RegisterDataNotify; 362*f334afcfSToomas Soome EFI_IP6_CONFIG_UNREGISTER_NOTIFY UnregisterDataNotify; 363*f334afcfSToomas Soome }; 364*f334afcfSToomas Soome 365*f334afcfSToomas Soome extern EFI_GUID gEfiIp6ConfigProtocolGuid; 366*f334afcfSToomas Soome 367*f334afcfSToomas Soome #endif 368