Source code of Windows XP (NT5)
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.

104 lines
2.0 KiB

  1. /*++
  2. Copyright (c) 1995 Microsoft Corporation
  3. Module Name:
  4. net\routing\ipx\sap\netio.h
  5. Abstract:
  6. Header file for net io module.
  7. Author:
  8. Vadim Eydelman 05-15-1995
  9. Revision History:
  10. --*/
  11. #ifndef _SAP_NETIO_
  12. #define _SAP_NETIO_
  13. // Param block to enqueue io requests
  14. typedef struct _IO_PARAM_BLOCK IO_PARAM_BLOCK, *PIO_PARAM_BLOCK;
  15. struct _IO_PARAM_BLOCK {
  16. LIST_ENTRY link; // Link in internal queues
  17. ULONG adpt; // Adapter index
  18. PUCHAR buffer; // Data to send/buffer to recv into
  19. DWORD cbBuffer; // Size of data/buffer
  20. DWORD status; // Result of IO operation
  21. DWORD compTime; // Time (windows time in msec)
  22. // the request was completed
  23. OVERLAPPED ovlp;
  24. VOID (CALLBACK *comp)
  25. (DWORD,DWORD,PIO_PARAM_BLOCK);
  26. ADDRESS_RESERVED rsvd;
  27. };
  28. DWORD
  29. CreateIOQueue (
  30. HANDLE *RecvEvent
  31. );
  32. VOID
  33. DeleteIOQueue (
  34. VOID
  35. );
  36. DWORD
  37. StartIO (
  38. VOID
  39. );
  40. VOID
  41. StopIO (
  42. VOID
  43. );
  44. /*++
  45. *******************************************************************
  46. E n q u e u e S e n d R e q u e s t
  47. Routine Description:
  48. Sets adapter id field in request io param block and enqueues
  49. send request to adapter's driver.
  50. Arguments:
  51. sreq - io parameter block, the following fields must be set:
  52. intf - pointer to interface external data
  53. buffer - pointer to buffer that contains data to be sent
  54. cbBuffer - count of bytes of data in the buffer
  55. Return Value:
  56. None
  57. *******************************************************************
  58. --*/
  59. VOID
  60. EnqueueSendRequest (
  61. IN PIO_PARAM_BLOCK sreq
  62. );
  63. /*++
  64. *******************************************************************
  65. E n q u e u e R e c v R e q u e s t
  66. Routine Description:
  67. Enqueues recv request to be posted to the network driver.
  68. Arguments:
  69. rreq - io parameter block, the following fields must be set:
  70. buffer - pointer to buffer to receive data
  71. cbBuffer - size of the buffer
  72. Return Value:
  73. None
  74. *******************************************************************
  75. --*/
  76. VOID
  77. EnqueueRecvRequest (
  78. PIO_PARAM_BLOCK rreq
  79. );
  80. #endif