/* Remove a previously registered event for the specified configuration data. */
EFI_STATUS EFIAPI EfiIp4Config2UnregisterDataNotify(IN EFI_IP4_CONFIG2_PROTOCOL *This, IN EFI_IP4_CONFIG2_DATA_TYPE DataType, IN EFI_EVENT Event)
/* Remove a previously registered event for the specified configuration data. */
EFI_STATUS EFIAPI EfiIp4Config2UnregisterDataNotify(IN EFI_IP4_CONFIG2_PROTOCOL *This, IN EFI_IP4_CONFIG2_DATA_TYPE DataType, IN EFI_EVENT Event)
{
  EFI_TPL               OldTpl;
  EFI_STATUS            Status;
  IP4_CONFIG2_INSTANCE  *Instance;
  NET_MAP_ITEM          *Item;
  if ((This == NULL) || (Event == NULL)) {
    return EFI_INVALID_PARAMETER;
  }
  if (DataType >= Ip4Config2DataTypeMaximum) {
    return EFI_NOT_FOUND;
  }
  OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
  Instance = IP4_CONFIG2_INSTANCE_FROM_PROTOCOL (This);
  Item = NetMapFindKey (&Instance->DataItem[DataType].EventMap, Event);
  if (Item != NULL) {
    NetMapRemoveItem (&Instance->DataItem[DataType].EventMap, Item, NULL);
    Status = EFI_SUCCESS;
  } else {
    Status = EFI_NOT_FOUND;
  }
  gBS->RestoreTPL (OldTpl);
  return Status;
}