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

/*++
Copyright (c) 1999-2001 Microsoft Corporation
Module Name:
control.h
Abstract:
This module contains public declarations for the UL control channel.
Author:
Keith Moore (keithmo) 09-Feb-1999
Revision History:
--*/
#ifndef _CONTROL_H_
#define _CONTROL_H_
#ifdef __cplusplus
extern "C" {
#endif
//
// The control channel
//
#define IS_VALID_CONTROL_CHANNEL(pControlChannel) \
(((pControlChannel) != NULL) && ((pControlChannel)->Signature == UL_CONTROL_CHANNEL_POOL_TAG))
typedef struct _UL_CONTROL_CHANNEL
{
ULONG Signature; // UL_CONTROL_CHANNEL_POOL_TAG
UL_NOTIFY_HEAD ConfigGroupHead;// All of the config groups
// created off this control
// channel
HTTP_ENABLED_STATE State; // The current state
HTTP_BANDWIDTH_LIMIT MaxBandwidth; // The global Bandwidth throttling
// limit if it exists
HTTP_CONNECTION_LIMIT MaxConnections; // The global connection limit
// if it exists
PUL_INTERNAL_RESPONSE pAutoResponse; // The kernel version of the
// auto-response.
HTTP_CONTROL_CHANNEL_UTF8_LOGGING UTF8Logging; // Shows if Utf8 Logging is on or off
//
// Note, filter channel information is stored in a separate data
// structure instead of here so that ultdi can query it when it
// creates new endpoints.
//
} UL_CONTROL_CHANNEL, *PUL_CONTROL_CHANNEL;
//
// Initialize/terminate functions.
//
NTSTATUS
UlInitializeControlChannel(
VOID
);
VOID
UlTerminateControlChannel(
VOID
);
//
// Open a new control channel.
//
NTSTATUS
UlOpenControlChannel(
OUT PUL_CONTROL_CHANNEL *ppControlChannel
);
NTSTATUS
UlCloseControlChannel(
IN PUL_CONTROL_CHANNEL pControlChannel
);
NTSTATUS
UlSetControlChannelInformation(
IN PUL_CONTROL_CHANNEL pControlChannel,
IN HTTP_CONTROL_CHANNEL_INFORMATION_CLASS InformationClass,
IN PVOID pControlChannelInformation,
IN ULONG Length
);
NTSTATUS
UlGetControlChannelInformation(
IN PUL_CONTROL_CHANNEL pControlChannel,
IN HTTP_CONTROL_CHANNEL_INFORMATION_CLASS InformationClass,
IN PVOID pControlChannelInformation,
IN ULONG Length,
OUT PULONG pReturnLength OPTIONAL
);
PUL_FILTER_CHANNEL
UlQueryFilterChannel(
IN BOOLEAN SecureConnection
);
BOOLEAN
UlValidateFilterChannel(
IN PUL_FILTER_CHANNEL pChannel,
IN BOOLEAN SecureConnection
);
#ifdef __cplusplus
}; // extern "C"
#endif
#endif // _CONTROL_H_