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.

110 lines
2.5 KiB

  1. /*++
  2. Copyright (C) Microsoft Corporation, 1996 - 1999
  3. Module Name:
  4. Loader.hxx
  5. Abstract:
  6. Global state for the transport interface
  7. Author:
  8. Mario Goertzel [MarioGo]
  9. Revision History:
  10. MarioGo 11/1/1996 Bits 'n pieces
  11. EdwardR 07/1/1997 Added MSMQ support.
  12. --*/
  13. #ifndef __LOADER_HXX
  14. #define __LOADER_HXX
  15. //
  16. // Global state
  17. //
  18. extern DWORD gdwComputerNameLength;
  19. extern RPC_CHAR gpstrComputerName[];
  20. extern const RPC_CHAR HexDigits[];
  21. extern LONG g_NotifyRt;
  22. #ifdef _INTERNAL_RPC_BUILD_
  23. extern RPCLT_PDU_FILTER_FUNC gpfnFilter;
  24. #endif
  25. //
  26. // Transport interfaces defined by each protocol
  27. //
  28. extern const RPC_CONNECTION_TRANSPORT TCP_TransportInterface;
  29. #ifdef SPX_ON
  30. extern const RPC_CONNECTION_TRANSPORT SPX_TransportInterface;
  31. #endif
  32. extern const RPC_CONNECTION_TRANSPORT NMP_TransportInterface;
  33. #ifdef NETBIOS_ON
  34. extern const RPC_CONNECTION_TRANSPORT NBF_TransportInterface;
  35. extern const RPC_CONNECTION_TRANSPORT NBT_TransportInterface;
  36. extern const RPC_CONNECTION_TRANSPORT NBI_TransportInterface;
  37. #endif
  38. #if defined(APPLETALK_ON)
  39. extern const RPC_CONNECTION_TRANSPORT DSP_TransportInterface;
  40. #endif
  41. extern const RPC_CONNECTION_TRANSPORT HTTP_TransportInterface;
  42. extern const RPC_DATAGRAM_TRANSPORT UDP_TransportInterface;
  43. extern const RPC_DATAGRAM_TRANSPORT IPX_TransportInterface;
  44. extern const RPC_DATAGRAM_TRANSPORT CDP_TransportInterface;
  45. #ifdef NCADG_MQ_ON
  46. extern const RPC_DATAGRAM_TRANSPORT MQ_TransportInterface;
  47. #endif
  48. //
  49. // Each protocol is assigned an ID here
  50. //
  51. typedef INT PROTOCOL_ID;
  52. extern PROTOCOL_ID
  53. MapProtseq(
  54. IN const RPC_CHAR *Protseq
  55. );
  56. extern PROTOCOL_ID
  57. MapProtseq(
  58. IN const CHAR *Protseq
  59. );
  60. extern PROTOCOL_ID
  61. MapProtocolId (
  62. IN UINT Protocol,
  63. IN UINT AddressFamily
  64. );
  65. //
  66. // Based on ID, each protocol is given an entry in the TransportTable
  67. //
  68. class BASE_CONNECTION;
  69. typedef BASE_CONNECTION *PCONNECTION;
  70. typedef RPC_STATUS (*CO_READ_MESSAGE)(PCONNECTION, DWORD, BUFFER *, PUINT );
  71. typedef RPC_STATUS (*CO_ABORT)(RPC_TRANSPORT_CONNECTION);
  72. struct TRANSPORT_TABLE_ENTRY
  73. {
  74. UINT ProtocolTowerId;
  75. UINT AddressTowerId;
  76. RPC_TRANSPORT_INTERFACE pInfo;
  77. };
  78. extern const TRANSPORT_TABLE_ENTRY TransportTable[];
  79. extern const DWORD cTransportTable;
  80. #endif // __LOADER_HXX