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

  1. /*++
  2. Copyright (c) 1995-1999 Microsoft Corporation
  3. Module Name:
  4. GpcHndlr.h
  5. Abstract:
  6. GPC client handler defs
  7. Author:
  8. Revision History:
  9. --*/
  10. #ifndef _GPC_HNDLR_
  11. #define _GPC_HNDLR_
  12. #include "gpcifc.h"
  13. //
  14. // Offload types that can co-exist with packet scheduling.
  15. //
  16. #define PERMITTED_TCP_IP_OFFLOAD_TYPES (TCP_XMT_CHECKSUM_OFFLOAD | \
  17. IP_XMT_CHECKSUM_OFFLOAD | \
  18. TCP_RCV_CHECKSUM_OFFLOAD | \
  19. IP_RCV_CHECKSUM_OFFLOAD | \
  20. IP_CHECKSUM_OPT_OFFLOAD | \
  21. TCP_CHECKSUM_OPT_OFFLOAD)
  22. //
  23. // The purpose of this is to ensure that whenever a new offload type is added
  24. // to TCP/IP, either it is consciously disallowed or allowed.
  25. //
  26. C_ASSERT((PERMITTED_TCP_IP_OFFLOAD_TYPES |
  27. TCP_LARGE_SEND_OFFLOAD |
  28. TCP_LARGE_SEND_TCPOPT_OFFLOAD |
  29. TCP_LARGE_SEND_IPOPT_OFFLOAD) == TCP_IP_OFFLOAD_TYPES);
  30. //
  31. // Function Prototypes.
  32. //
  33. GPC_STATUS
  34. QosAddCfInfoNotify(
  35. IN GPC_CLIENT_HANDLE ClientContext,
  36. IN GPC_HANDLE GpcCfInfoHandle,
  37. IN PTC_INTERFACE_ID InterfaceInfo,
  38. IN ULONG CfInfoSize,
  39. IN PVOID CfInfoPtr,
  40. IN PGPC_CLIENT_HANDLE ClientCfInfoContext
  41. );
  42. GPC_STATUS
  43. QosClGetCfInfoName(
  44. IN GPC_CLIENT_HANDLE ClientContext,
  45. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  46. OUT PNDIS_STRING InstanceName
  47. );
  48. //
  49. // Internal Completion handlers
  50. //
  51. VOID
  52. CmMakeCallComplete(NDIS_STATUS Status,
  53. PGPC_CLIENT_VC Vc,
  54. PCO_CALL_PARAMETERS CallParameters);
  55. VOID
  56. CmModifyCallComplete(
  57. IN NDIS_STATUS Status,
  58. IN PGPC_CLIENT_VC GpcClientVc,
  59. IN PCO_CALL_PARAMETERS CallParameters
  60. );
  61. VOID
  62. CmCloseCallComplete(
  63. IN NDIS_STATUS Status,
  64. IN PGPC_CLIENT_VC Vc
  65. );
  66. VOID
  67. QosAddCfInfoComplete(
  68. IN GPC_CLIENT_HANDLE ClientContext,
  69. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  70. IN GPC_STATUS Status
  71. );
  72. GPC_STATUS
  73. QosModifyCfInfoNotify(
  74. IN GPC_CLIENT_HANDLE ClientContext,
  75. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  76. IN ULONG CfInfoSize,
  77. IN GPC_HANDLE CfInfo
  78. );
  79. VOID
  80. ClModifyCallQoSComplete(
  81. IN NDIS_STATUS Status,
  82. IN NDIS_HANDLE ProtocolVcContext,
  83. IN PCO_CALL_PARAMETERS CallParameters
  84. );
  85. VOID
  86. QosModifyCfInfoComplete(
  87. IN GPC_CLIENT_HANDLE ClientContext,
  88. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  89. IN GPC_STATUS Status
  90. );
  91. GPC_STATUS
  92. QosRemoveCfInfoNotify(
  93. IN GPC_CLIENT_HANDLE ClientContext,
  94. IN GPC_CLIENT_HANDLE ClientCfInfoContext
  95. );
  96. VOID
  97. ClCloseCallComplete(
  98. IN NDIS_STATUS Status,
  99. IN NDIS_HANDLE ProtocolVcContext,
  100. IN PCO_CALL_PARAMETERS CallParameters
  101. );
  102. VOID
  103. QosRemoveCfInfoComplete(
  104. IN GPC_CLIENT_HANDLE ClientContext,
  105. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  106. IN GPC_STATUS Status
  107. );
  108. VOID
  109. DerefClVc(
  110. IN PGPC_CLIENT_VC Vc);
  111. NDIS_STATUS
  112. CloseCallWithNdis(
  113. PGPC_CLIENT_VC Vc
  114. );
  115. NDIS_STATUS
  116. CloseCallWithGpc(
  117. PGPC_CLIENT_VC Vc
  118. );
  119. //
  120. // Prototypes for CF_INFO_CLASS_MAP
  121. //
  122. GPC_STATUS
  123. ClassMapAddCfInfoNotify(
  124. IN GPC_CLIENT_HANDLE ClientContext,
  125. IN GPC_HANDLE GpcCfInfoHandle,
  126. IN ULONG CfInfoSize,
  127. IN PVOID CfInfoPtr,
  128. IN PGPC_CLIENT_HANDLE ClientCfInfoContext
  129. );
  130. GPC_STATUS
  131. ClassMapClGetCfInfoName(
  132. IN GPC_CLIENT_HANDLE ClientContext,
  133. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  134. OUT PNDIS_STRING InstanceName
  135. );
  136. VOID
  137. ClassMapAddCfInfoComplete(
  138. IN GPC_CLIENT_HANDLE ClientContext,
  139. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  140. IN GPC_STATUS Status
  141. );
  142. GPC_STATUS
  143. ClassMapModifyCfInfoNotify(
  144. IN GPC_CLIENT_HANDLE ClientContext,
  145. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  146. IN ULONG CfInfoSize,
  147. IN GPC_HANDLE CfInfo
  148. );
  149. VOID
  150. ClassMapModifyCfInfoComplete(
  151. IN GPC_CLIENT_HANDLE ClientContext,
  152. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  153. IN GPC_STATUS Status
  154. );
  155. GPC_STATUS
  156. ClassMapRemoveCfInfoNotify(
  157. IN GPC_CLIENT_HANDLE ClientContext,
  158. IN GPC_CLIENT_HANDLE ClientCfInfoContext
  159. );
  160. VOID
  161. ClassMapRemoveCfInfoComplete(
  162. IN GPC_CLIENT_HANDLE ClientContext,
  163. IN GPC_CLIENT_HANDLE ClientCfInfoContext,
  164. IN GPC_STATUS Status
  165. );
  166. VOID
  167. SetTOSIEEEValues(PGPC_CLIENT_VC Vc);
  168. // End prototypes
  169. #endif // _GPC_HNDLR_