Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

206 lines
4.8 KiB

/*++
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_