TDIVXD.H
上传用户:he75757
上传日期:2007-01-04
资源大小:36k
文件大小:4k
源码类别:

TCP/IP协议栈

开发平台:

Visual C++

  1. /********************************************************************/
  2. /**                     Microsoft LAN Manager                      **/
  3. /**               Copyright(c) Microsoft Corp., 1990-1993          **/
  4. /********************************************************************/
  5. /* :ts=4 */
  6. //** TDIVXD.H - VXD specific TDI definitions. 
  7. //
  8. // This file contains VXD specific TDI definitions, primarily related
  9. // to the TdiDispatch Table.
  10. //
  11. struct TDIDispatchTable {
  12. TDI_STATUS (*TdiOpenAddressEntry)(PTDI_REQUEST, PTRANSPORT_ADDRESS, 
  13. uint, PVOID);
  14. TDI_STATUS (*TdiCloseAddressEntry)(PTDI_REQUEST);
  15. TDI_STATUS (*TdiOpenConnectionEntry)(PTDI_REQUEST, PVOID);
  16. TDI_STATUS (*TdiCloseConnectionEntry)(PTDI_REQUEST);
  17. TDI_STATUS (*TdiAssociateAddressEntry)(PTDI_REQUEST, HANDLE);
  18. TDI_STATUS (*TdiDisAssociateAddressEntry)(PTDI_REQUEST);
  19. TDI_STATUS (*TdiConnectEntry)(PTDI_REQUEST, PVOID, 
  20. PTDI_CONNECTION_INFORMATION, 
  21. PTDI_CONNECTION_INFORMATION);
  22. TDI_STATUS (*TdiDisconnectEntry)(PTDI_REQUEST, PVOID, ushort,
  23. PTDI_CONNECTION_INFORMATION, 
  24. PTDI_CONNECTION_INFORMATION);
  25. TDI_STATUS (*TdiListenEntry)(PTDI_REQUEST, ushort, 
  26. PTDI_CONNECTION_INFORMATION, 
  27. PTDI_CONNECTION_INFORMATION);
  28. TDI_STATUS (*TdiAcceptEntry)(PTDI_REQUEST, PTDI_CONNECTION_INFORMATION,
  29. PTDI_CONNECTION_INFORMATION);
  30. TDI_STATUS (*TdiReceiveEntry)(PTDI_REQUEST, ushort *, uint *, 
  31. PNDIS_BUFFER);
  32. TDI_STATUS (*TdiSendEntry)(PTDI_REQUEST, ushort, uint, PNDIS_BUFFER);
  33. TDI_STATUS (*TdiSendDatagramEntry)(PTDI_REQUEST, PTDI_CONNECTION_INFORMATION,
  34. uint, uint *, PNDIS_BUFFER);
  35. TDI_STATUS (*TdiReceiveDatagramEntry)(PTDI_REQUEST, 
  36. PTDI_CONNECTION_INFORMATION,
  37. PTDI_CONNECTION_INFORMATION, uint, uint *, PNDIS_BUFFER);
  38. TDI_STATUS (*TdiSetEventEntry)(PVOID, int, PVOID, PVOID);
  39. TDI_STATUS (*TdiQueryInformationEntry)(PTDI_REQUEST, uint, 
  40. PNDIS_BUFFER, uint *, uint);
  41. TDI_STATUS (*TdiSetInformationEntry)(PTDI_REQUEST, uint, 
  42. PNDIS_BUFFER, uint, uint);
  43. TDI_STATUS (*TdiActionEntry)(PTDI_REQUEST, uint, 
  44. PNDIS_BUFFER, uint);
  45. //* Next two entries still under construction - reserved for future use.....
  46. TDI_STATUS (*TdiQueryInformationExEntry)(PTDI_REQUEST, 
  47. struct TDIObjectID *, PNDIS_BUFFER, uint *, void *);
  48. TDI_STATUS (*TdiSetInformationExEntry)(PTDI_REQUEST, 
  49. struct TDIObjectID *, void *, uint);
  50. };
  51. typedef struct TDIDispatchTable TDIDispatchTable;
  52. typedef struct EventRcvBuffer {
  53. PNDIS_BUFFER erb_buffer;
  54. uint erb_size;
  55. CTEReqCmpltRtn erb_rtn; // Completion routine.
  56. PVOID erb_context; // User context.
  57. ushort *erb_flags; // Pointer to user flags.
  58. } EventRcvBuffer;
  59. typedef struct ConnectEventInfo {
  60. CTEReqCmpltRtn cei_rtn; // Completion routine.
  61. PVOID cei_context;// User context.
  62. PTDI_CONNECTION_INFORMATION cei_acceptinfo; // Connection information for
  63. // the accept.
  64. PTDI_CONNECTION_INFORMATION cei_conninfo; // Connection information to be
  65. // returned.
  66. } ConnectEventInfo;
  67. typedef TDI_STATUS (*PConnectEvent)(PVOID EventContext, uint AddressLength, 
  68. PTRANSPORT_ADDRESS Address, uint UserDataLength, 
  69. PVOID UserData, uint OptionsLength, PVOID
  70. Options,  PVOID *AcceptingID, 
  71. ConnectEventInfo *EventInfo);
  72. typedef TDI_STATUS (*PDisconnectEvent)(PVOID EventContext, 
  73. PVOID ConnectionContext, uint DisconnectDataLength,
  74. PVOID DisconnectData, uint OptionsLength, PVOID
  75. Options, ulong Flags);
  76. typedef TDI_STATUS (*PErrorEvent)(PVOID EventContext, uint Status);
  77. typedef TDI_STATUS (*PRcvEvent)(PVOID EventContext, PVOID ConnectionContext, 
  78. ulong Flags, uint Indicated, uint Available, 
  79. uint *Taken, uchar *Data, EventRcvBuffer *Buffer);
  80. typedef TDI_STATUS (*PRcvDGEvent)(PVOID EventContext, uint AddressLength, 
  81. PTRANSPORT_ADDRESS Address, uint OptionsLength, PVOID
  82. Options,  uint Flags, uint Indicated, uint Available, 
  83. uint *Taken, uchar *Data, EventRcvBuffer **Buffer);
  84. typedef TDI_STATUS (*PRcvExpEvent)(PVOID EventContext, PVOID ConnectionContext, 
  85. ulong Flags, uint Indicated, uint Available, 
  86. uint *Taken, uchar *Data, EventRcvBuffer *Buffer);