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.

127 lines
2.8 KiB

  1. /*++
  2. Copyright (c) 1999-2001 Microsoft Corporation
  3. Module Name:
  4. control.h
  5. Abstract:
  6. This module contains public declarations for the UL control channel.
  7. Author:
  8. Keith Moore (keithmo) 09-Feb-1999
  9. Revision History:
  10. --*/
  11. #ifndef _CONTROL_H_
  12. #define _CONTROL_H_
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. //
  17. // The control channel
  18. //
  19. #define IS_VALID_CONTROL_CHANNEL(pControlChannel) \
  20. (((pControlChannel) != NULL) && ((pControlChannel)->Signature == UL_CONTROL_CHANNEL_POOL_TAG))
  21. typedef struct _UL_CONTROL_CHANNEL
  22. {
  23. ULONG Signature; // UL_CONTROL_CHANNEL_POOL_TAG
  24. UL_NOTIFY_HEAD ConfigGroupHead;// All of the config groups
  25. // created off this control
  26. // channel
  27. HTTP_ENABLED_STATE State; // The current state
  28. HTTP_BANDWIDTH_LIMIT MaxBandwidth; // The global Bandwidth throttling
  29. // limit if it exists
  30. HTTP_CONNECTION_LIMIT MaxConnections; // The global connection limit
  31. // if it exists
  32. PUL_INTERNAL_RESPONSE pAutoResponse; // The kernel version of the
  33. // auto-response.
  34. HTTP_CONTROL_CHANNEL_UTF8_LOGGING UTF8Logging; // Shows if Utf8 Logging is on or off
  35. //
  36. // Note, filter channel information is stored in a separate data
  37. // structure instead of here so that ultdi can query it when it
  38. // creates new endpoints.
  39. //
  40. } UL_CONTROL_CHANNEL, *PUL_CONTROL_CHANNEL;
  41. //
  42. // Initialize/terminate functions.
  43. //
  44. NTSTATUS
  45. UlInitializeControlChannel(
  46. VOID
  47. );
  48. VOID
  49. UlTerminateControlChannel(
  50. VOID
  51. );
  52. //
  53. // Open a new control channel.
  54. //
  55. NTSTATUS
  56. UlOpenControlChannel(
  57. OUT PUL_CONTROL_CHANNEL *ppControlChannel
  58. );
  59. NTSTATUS
  60. UlCloseControlChannel(
  61. IN PUL_CONTROL_CHANNEL pControlChannel
  62. );
  63. NTSTATUS
  64. UlSetControlChannelInformation(
  65. IN PUL_CONTROL_CHANNEL pControlChannel,
  66. IN HTTP_CONTROL_CHANNEL_INFORMATION_CLASS InformationClass,
  67. IN PVOID pControlChannelInformation,
  68. IN ULONG Length
  69. );
  70. NTSTATUS
  71. UlGetControlChannelInformation(
  72. IN PUL_CONTROL_CHANNEL pControlChannel,
  73. IN HTTP_CONTROL_CHANNEL_INFORMATION_CLASS InformationClass,
  74. IN PVOID pControlChannelInformation,
  75. IN ULONG Length,
  76. OUT PULONG pReturnLength OPTIONAL
  77. );
  78. PUL_FILTER_CHANNEL
  79. UlQueryFilterChannel(
  80. IN BOOLEAN SecureConnection
  81. );
  82. BOOLEAN
  83. UlValidateFilterChannel(
  84. IN PUL_FILTER_CHANNEL pChannel,
  85. IN BOOLEAN SecureConnection
  86. );
  87. #ifdef __cplusplus
  88. }; // extern "C"
  89. #endif
  90. #endif // _CONTROL_H_