+ }
+ case INFO_TYPE_CONNECTION:
+ {
+ PADDRESS_FILE AddressFile = GetContext(ID->toi_entity);
+ if (AddressFile == NULL)
+ return TDI_INVALID_PARAMETER;
+ return SetConnectionInfo(ID, AddressFile->Connection, Buffer, BufferSize);
+ }
+ case INFO_TYPE_PROVIDER:
+ {
+ switch (ID->toi_id)
+ {
+ case IP_MIB_ARPTABLE_ENTRY_ID:
+ if (ID->toi_type != INFO_TYPE_PROVIDER)
+ return TDI_INVALID_PARAMETER;
+
+ if (ID->toi_entity.tei_entity == AT_ENTITY)
+ if ((EntityListContext = GetContext(ID->toi_entity)))
+ return InfoTdiSetArptableMIB(EntityListContext, Buffer,
+ BufferSize);
+ else
+ return TDI_INVALID_PARAMETER;
+ else if (ID->toi_entity.tei_entity == CL_NL_ENTITY
+ || ID->toi_entity.tei_entity == CO_NL_ENTITY)
+ if ((EntityListContext = GetContext(ID->toi_entity)))
+ return InfoTdiSetRoute(EntityListContext, Buffer, BufferSize);
+ else
+ return TDI_INVALID_PARAMETER;
+ else
+ return TDI_INVALID_PARAMETER;
+
+ default:
+ return TDI_INVALID_REQUEST;
+ }
+ }
+ default:
+ DbgPrint("TCPIP: IOCTL_TCP_SET_INFORMATION_EX - Unrecognized information type for INFO_CLASS_PROTOCOL: %#x.\n", ID->toi_type);
+ return TDI_INVALID_PARAMETER;
+ }
+ break;
+ }
+ default:
+ DbgPrint("TCPIP: IOCTL_TCP_SET_INFORMATION_EX - Unrecognized information class %#x.\n", ID->toi_class);
+ return TDI_INVALID_REQUEST;