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.

161 lines
4.8 KiB

  1. /*++ BUILD Version: 0009 // Increment this if a change has global effects
  2. Copyright (c) 1987-1993 Microsoft Corporation
  3. Module Name:
  4. rxtdi.h
  5. Abstract:
  6. This is the include file that defines all the Transport driver related
  7. functions that the rest of the connection engine relies on. these have to
  8. be implemented across all OS platforms.
  9. Revision History:
  10. Balan Sethu Raman (SethuR) 06-Feb-95 Created
  11. Notes:
  12. The Connection engine is designed to map and emulate the TDI specs. as closely
  13. as possible. This implies that on NT we will have a very efficient mechanism
  14. which fully exploits the underlying TDI implementation.
  15. --*/
  16. #ifndef _RXTDI_H_
  17. #define _RXTDI_H_
  18. #include "nb30.h" // NETBIOS specific data structures
  19. //
  20. // Some of these routines should be made inlines. The number of them that need to be made
  21. // inline is a space/time tradeoff that could very well be different across OS platforms.
  22. // As a first cut in order to facilitate debugging all of these routines have not been inlined.
  23. //
  24. extern ULONG
  25. ComputeTransportAddressLength(
  26. PTRANSPORT_ADDRESS pTransportAddress);
  27. extern NTSTATUS
  28. RxTdiBindToTransport(
  29. IN OUT PRXCE_TRANSPORT pTransport);
  30. extern NTSTATUS
  31. RxTdiUnbindFromTransport(
  32. IN OUT PRXCE_TRANSPORT pTransport);
  33. extern NTSTATUS
  34. RxTdiOpenAddress(
  35. IN PRXCE_TRANSPORT pTransport,
  36. IN PTRANSPORT_ADDRESS pTransportAddress,
  37. IN OUT PRXCE_ADDRESS pAddress);
  38. extern NTSTATUS
  39. RxTdiCloseAddress(
  40. IN OUT PRXCE_ADDRESS pAddress);
  41. extern NTSTATUS
  42. RxTdiSetEventHandlers(
  43. IN PRXCE_TRANSPORT pTransport,
  44. IN PRXCE_ADDRESS pAddress);
  45. #define RXCE_QUERY_BROADCAST_ADDRESS TDI_QUERY_BROADCAST_ADDRESS
  46. #define RXCE_QUERY_PROVIDER_INFORMATION TDI_QUERY_PROVIDER_INFORMATION
  47. #define RXCE_QUERY_PROVIDER_INFO TDI_QUERY_PROVIDER_INFO
  48. #define RXCE_QUERY_ADDRESS_INFO TDI_QUERY_ADDRESS_INFO
  49. #define RXCE_QUERY_CONNECTION_INFO TDI_QUERY_CONNECTION_INFO
  50. #define RXCE_QUERY_PROVIDER_STATISTICS TDI_QUERY_PROVIDER_STATISTICS
  51. #define RXCE_QUERY_DATAGRAM_INFO TDI_QUERY_DATAGRAM_INFO
  52. #define RXCE_QUERY_DATA_LINK_ADDRESS TDI_QUERY_DATA_LINK_ADDRESS
  53. #define RXCE_QUERY_NETWORK_ADDRESS TDI_QUERY_NETWORK_ADDRESS
  54. #define RXCE_QUERY_MAX_DATAGRAM_INFO TDI_QUERY_MAX_DATAGRAM_INFO
  55. extern NTSTATUS
  56. RxTdiQueryInformation(
  57. IN PRXCE_TRANSPORT pTransport,
  58. IN PRXCE_ADDRESS pAddress,
  59. IN PRXCE_CONNECTION pConnection,
  60. IN PRXCE_VC pVc,
  61. IN ULONG QueryType,
  62. IN PVOID QueryBuffer,
  63. IN ULONG QueryBufferLength);
  64. extern NTSTATUS
  65. RxTdiQueryAdapterStatus(
  66. IN PRXCE_TRANSPORT pTransport,
  67. IN OUT PADAPTER_STATUS pAdapterStatus);
  68. extern NTSTATUS
  69. RxTdiConnect(
  70. IN PRXCE_TRANSPORT pTransport,
  71. IN PRXCE_ADDRESS pAddress,
  72. IN OUT PRXCE_CONNECTION pConnection,
  73. IN OUT PRXCE_VC pVc);
  74. extern NTSTATUS
  75. RxTdiInitiateAsynchronousConnect(
  76. PRX_CREATE_CONNECTION_PARAMETERS_BLOCK pParameters);
  77. extern NTSTATUS
  78. RxTdiCancelAsynchronousConnect(
  79. PRX_CREATE_CONNECTION_PARAMETERS_BLOCK pParameters);
  80. extern NTSTATUS
  81. RxTdiCleanupAsynchronousConnect(
  82. PRX_CREATE_CONNECTION_PARAMETERS_BLOCK pParameters);
  83. extern NTSTATUS
  84. RxTdiReconnect(
  85. IN PRXCE_TRANSPORT pTransport,
  86. IN PRXCE_ADDRESS pAddress,
  87. IN OUT PRXCE_CONNECTION pConnection,
  88. IN OUT PRXCE_VC pVc);
  89. //
  90. // Disconnect options
  91. //
  92. #define RXCE_DISCONNECT_ABORT TDI_DISCONNECT_ABORT
  93. #define RXCE_DISCONNECT_RELEASE TDI_DISCONNECT_RELEASE
  94. #define RXCE_DISCONNECT_WAIT TDI_DISCONNECT_WAIT
  95. #define RXCE_DISCONNECT_ASYNC TDI_DISCONNECT_ASYNC
  96. extern NTSTATUS
  97. RxTdiDisconnect(
  98. IN PRXCE_TRANSPORT pTransport,
  99. IN PRXCE_ADDRESS pAddress,
  100. IN PRXCE_CONNECTION pConnection,
  101. IN PRXCE_VC pVc,
  102. IN ULONG DisconnectFlags);
  103. extern NTSTATUS
  104. RxTdiCancelConnect(
  105. IN PRXCE_TRANSPORT pTransport,
  106. IN PRXCE_ADDRESS pAddress,
  107. IN PRXCE_CONNECTION pConnection);
  108. extern NTSTATUS
  109. RxTdiSend(
  110. IN PRXCE_TRANSPORT pTransport,
  111. IN PRXCE_ADDRESS pAddress,
  112. IN PRXCE_CONNECTION pConnection,
  113. IN PRXCE_VC pVc,
  114. IN ULONG SendOptions,
  115. IN PMDL pMdl,
  116. IN ULONG SendLength,
  117. IN PVOID pCompletionContext);
  118. extern NTSTATUS
  119. RxTdiSendDatagram(
  120. IN PRXCE_TRANSPORT pTransport,
  121. IN PRXCE_ADDRESS pAddress,
  122. IN PRXCE_CONNECTION_INFORMATION pConnectionInformation,
  123. IN ULONG SendOptions,
  124. IN PMDL pMdl,
  125. IN ULONG SendLength,
  126. IN PVOID pCompletionContext);
  127. #endif // _RXTDI_H_
  128.