/*++ Copyright (c) 1995-1999 Microsoft Corporation Module Name: GpcHndlr.h Abstract: GPC client handler defs Author: Revision History: --*/ #ifndef _GPC_HNDLR_ #define _GPC_HNDLR_ #include "gpcifc.h" // // Offload types that can co-exist with packet scheduling. // #define PERMITTED_TCP_IP_OFFLOAD_TYPES (TCP_XMT_CHECKSUM_OFFLOAD | \ IP_XMT_CHECKSUM_OFFLOAD | \ TCP_RCV_CHECKSUM_OFFLOAD | \ IP_RCV_CHECKSUM_OFFLOAD | \ IP_CHECKSUM_OPT_OFFLOAD | \ TCP_CHECKSUM_OPT_OFFLOAD) // // The purpose of this is to ensure that whenever a new offload type is added // to TCP/IP, either it is consciously disallowed or allowed. // C_ASSERT((PERMITTED_TCP_IP_OFFLOAD_TYPES | TCP_LARGE_SEND_OFFLOAD | TCP_LARGE_SEND_TCPOPT_OFFLOAD | TCP_LARGE_SEND_IPOPT_OFFLOAD) == TCP_IP_OFFLOAD_TYPES); // // Function Prototypes. // GPC_STATUS QosAddCfInfoNotify( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_HANDLE GpcCfInfoHandle, IN PTC_INTERFACE_ID InterfaceInfo, IN ULONG CfInfoSize, IN PVOID CfInfoPtr, IN PGPC_CLIENT_HANDLE ClientCfInfoContext ); GPC_STATUS QosClGetCfInfoName( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, OUT PNDIS_STRING InstanceName ); // // Internal Completion handlers // VOID CmMakeCallComplete(NDIS_STATUS Status, PGPC_CLIENT_VC Vc, PCO_CALL_PARAMETERS CallParameters); VOID CmModifyCallComplete( IN NDIS_STATUS Status, IN PGPC_CLIENT_VC GpcClientVc, IN PCO_CALL_PARAMETERS CallParameters ); VOID CmCloseCallComplete( IN NDIS_STATUS Status, IN PGPC_CLIENT_VC Vc ); VOID QosAddCfInfoComplete( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, IN GPC_STATUS Status ); GPC_STATUS QosModifyCfInfoNotify( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, IN ULONG CfInfoSize, IN GPC_HANDLE CfInfo ); VOID ClModifyCallQoSComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN PCO_CALL_PARAMETERS CallParameters ); VOID QosModifyCfInfoComplete( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, IN GPC_STATUS Status ); GPC_STATUS QosRemoveCfInfoNotify( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext ); VOID ClCloseCallComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN PCO_CALL_PARAMETERS CallParameters ); VOID QosRemoveCfInfoComplete( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, IN GPC_STATUS Status ); VOID DerefClVc( IN PGPC_CLIENT_VC Vc); NDIS_STATUS CloseCallWithNdis( PGPC_CLIENT_VC Vc ); NDIS_STATUS CloseCallWithGpc( PGPC_CLIENT_VC Vc ); // // Prototypes for CF_INFO_CLASS_MAP // GPC_STATUS ClassMapAddCfInfoNotify( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_HANDLE GpcCfInfoHandle, IN ULONG CfInfoSize, IN PVOID CfInfoPtr, IN PGPC_CLIENT_HANDLE ClientCfInfoContext ); GPC_STATUS ClassMapClGetCfInfoName( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, OUT PNDIS_STRING InstanceName ); VOID ClassMapAddCfInfoComplete( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, IN GPC_STATUS Status ); GPC_STATUS ClassMapModifyCfInfoNotify( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, IN ULONG CfInfoSize, IN GPC_HANDLE CfInfo ); VOID ClassMapModifyCfInfoComplete( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, IN GPC_STATUS Status ); GPC_STATUS ClassMapRemoveCfInfoNotify( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext ); VOID ClassMapRemoveCfInfoComplete( IN GPC_CLIENT_HANDLE ClientContext, IN GPC_CLIENT_HANDLE ClientCfInfoContext, IN GPC_STATUS Status ); VOID SetTOSIEEEValues(PGPC_CLIENT_VC Vc); // End prototypes #endif // _GPC_HNDLR_