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.

75 lines
1.2 KiB

  1. typedef VOID (*PACKET_STARTER)(
  2. PVOID Context,
  3. PNDIS_PACKET Packet
  4. );
  5. typedef struct _PACKET_QUEUE {
  6. PNDIS_PACKET HeadOfList;
  7. PNDIS_PACKET TailOfList;
  8. PNDIS_PACKET CurrentPacket;
  9. BOOLEAN Active;
  10. BOOLEAN InStartNext;
  11. NDIS_SPIN_LOCK Lock;
  12. PVOID Context;
  13. PACKET_STARTER Starter;
  14. KEVENT InactiveEvent;
  15. } PACKET_QUEUE, *PPACKET_QUEUE;
  16. typedef struct _PACKET_RESERVED_BLOCK {
  17. PNDIS_PACKET Next;
  18. PVOID Context;
  19. } PACKET_RESERVED_BLOCK, *PPACKET_RESERVED_BLOCK;
  20. VOID
  21. InitializePacketQueue(
  22. PPACKET_QUEUE PacketQueue,
  23. PVOID Context,
  24. PACKET_STARTER StarterRoutine
  25. );
  26. VOID
  27. QueuePacket(
  28. PPACKET_QUEUE PacketQueue,
  29. PNDIS_PACKET Packet
  30. );
  31. VOID
  32. StartNextPacket(
  33. PPACKET_QUEUE PacketQueue
  34. );
  35. VOID
  36. PausePacketProcessing(
  37. PPACKET_QUEUE PacketQueue,
  38. BOOLEAN WaitForInactive
  39. );
  40. VOID
  41. ActivatePacketProcessing(
  42. PPACKET_QUEUE PacketQueue
  43. );
  44. VOID
  45. FlushQueuedPackets(
  46. PPACKET_QUEUE PacketQueue,
  47. NDIS_HANDLE WrapperHandle
  48. );