Headers diff for traffic.dll between 5.2.3790.1830-Windows 5.0 and 6.0.6000.16386-Windows 6.0 versions



 traffic.h (5.2.3790.1830-Windows 5.0)   traffic.h (6.0.6000.16386-Windows 6.0) 
skipping to change at line 30 skipping to change at line 30
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
// Define's // Define's
// //
#define CURRENT_TCI_VERSION 0x0002 #define CURRENT_TCI_VERSION 0x0002
// //
// Definitions of notification events. These may be passed // Definitions of notification events. These may be passed
// to the client's notification handler, to identify the // to the client's notification handler, to identify the
// notification type // notification type
// //
// //
// A TC interface has come up // A TC interface has come up
// //
#define TC_NOTIFY_IFC_UP 1 #define TC_NOTIFY_IFC_UP 1
// //
// A TC interface has come down // A TC interface has come down
// //
#define TC_NOTIFY_IFC_CLOSE 2 #define TC_NOTIFY_IFC_CLOSE 2
// //
// A change on a TC interface, typically a change in the // A change on a TC interface, typically a change in the
// list of supported network addresses // list of supported network addresses
// //
#define TC_NOTIFY_IFC_CHANGE 3 #define TC_NOTIFY_IFC_CHANGE 3
// //
// A TC parameter has changed // A TC parameter has changed
// //
#define TC_NOTIFY_PARAM_CHANGED 4 #define TC_NOTIFY_PARAM_CHANGED 4
// //
// A flow has been closed by the TC interface // A flow has been closed by the TC interface
// for example: after a remote call close, or the whole interface // for example: after a remote call close, or the whole interface
// is going down // is going down
// //
#define TC_NOTIFY_FLOW_CLOSE 5 #define TC_NOTIFY_FLOW_CLOSE 5
#define TC_INVALID_HANDLE ((HANDLE)0) #define TC_INVALID_HANDLE ((HANDLE)0)
#define MAX_STRING_LENGTH 256 #define MAX_STRING_LENGTH 256
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
// Typedef's and structures // Typedef's and structures
// //
#ifndef CALLBACK #ifndef CALLBACK
#define CALLBACK __stdcall #define CALLBACK __stdcall
#endif #endif
#ifndef APIENTRY #ifndef APIENTRY
#define APIENTRY FAR __stdcall #define APIENTRY FAR __stdcall
#endif #endif
// //
// Handlers registered by the TCI client // Handlers registered by the TCI client
// //
typedef typedef
VOID (CALLBACK * TCI_NOTIFY_HANDLER)( VOID (CALLBACK * TCI_NOTIFY_HANDLER)(
IN HANDLE ClRegCtx, IN HANDLE ClRegCtx,
IN HANDLE ClIfcCtx, IN HANDLE ClIfcCtx,
IN ULONG Event, // See list below IN ULONG Event, // See list below
IN HANDLE SubCode, IN HANDLE SubCode,
IN ULONG BufSize, IN ULONG BufSize,
IN PVOID Buffer IN PVOID Buffer
); );
typedef typedef
VOID (CALLBACK * TCI_ADD_FLOW_COMPLETE_HANDLER)( VOID (CALLBACK * TCI_ADD_FLOW_COMPLETE_HANDLER)(
IN HANDLE ClFlowCtx, IN HANDLE ClFlowCtx,
IN ULONG Status IN ULONG Status
); );
typedef typedef
VOID (CALLBACK * TCI_MOD_FLOW_COMPLETE_HANDLER)( VOID (CALLBACK * TCI_MOD_FLOW_COMPLETE_HANDLER)(
IN HANDLE ClFlowCtx, IN HANDLE ClFlowCtx,
IN ULONG Status IN ULONG Status
); );
typedef typedef
VOID (CALLBACK * TCI_DEL_FLOW_COMPLETE_HANDLER)( VOID (CALLBACK * TCI_DEL_FLOW_COMPLETE_HANDLER)(
IN HANDLE ClFlowCtx, IN HANDLE ClFlowCtx,
IN ULONG Status IN ULONG Status
); );
typedef struct _TCI_CLIENT_FUNC_LIST { typedef struct _TCI_CLIENT_FUNC_LIST {
TCI_NOTIFY_HANDLER ClNotifyHandler; TCI_NOTIFY_HANDLER ClNotifyHandler;
TCI_ADD_FLOW_COMPLETE_HANDLER ClAddFlowCompleteHandler; TCI_ADD_FLOW_COMPLETE_HANDLER ClAddFlowCompleteHandler;
TCI_MOD_FLOW_COMPLETE_HANDLER ClModifyFlowCompleteHandler; TCI_MOD_FLOW_COMPLETE_HANDLER ClModifyFlowCompleteHandler;
TCI_DEL_FLOW_COMPLETE_HANDLER ClDeleteFlowCompleteHandler; TCI_DEL_FLOW_COMPLETE_HANDLER ClDeleteFlowCompleteHandler;
} TCI_CLIENT_FUNC_LIST, *PTCI_CLIENT_FUNC_LIST; } TCI_CLIENT_FUNC_LIST, *PTCI_CLIENT_FUNC_LIST;
// //
// Network address descriptor // Network address descriptor
// //
typedef struct _ADDRESS_LIST_DESCRIPTOR { typedef struct _ADDRESS_LIST_DESCRIPTOR {
ULONG MediaType; ULONG MediaType;
NETWORK_ADDRESS_LIST AddressList; NETWORK_ADDRESS_LIST AddressList;
} ADDRESS_LIST_DESCRIPTOR, *PADDRESS_LIST_DESCRIPTOR; } ADDRESS_LIST_DESCRIPTOR, *PADDRESS_LIST_DESCRIPTOR;
// //
// An interface ID that is returned by the enumerator // An interface ID that is returned by the enumerator
// //
typedef struct _TC_IFC_DESCRIPTOR { typedef struct _TC_IFC_DESCRIPTOR {
ULONG Length; ULONG Length;
LPWSTR pInterfaceName; LPWSTR pInterfaceName;
LPWSTR pInterfaceID; LPWSTR pInterfaceID;
ADDRESS_LIST_DESCRIPTOR AddressListDesc; ADDRESS_LIST_DESCRIPTOR AddressListDesc;
} TC_IFC_DESCRIPTOR, *PTC_IFC_DESCRIPTOR; } TC_IFC_DESCRIPTOR, *PTC_IFC_DESCRIPTOR;
// //
// This structure is returned by a QoS data provider in reply to // This structure is returned by a QoS data provider in reply to
// GUID_QOS_SUPPORTED query or with an interface UP notification // GUID_QOS_SUPPORTED query or with an interface UP notification
// //
typedef struct _TC_SUPPORTED_INFO_BUFFER { typedef struct _TC_SUPPORTED_INFO_BUFFER {
USHORT InstanceIDLength; USHORT InstanceIDLength;
// device or interface ID // device or interface ID
WCHAR InstanceID[MAX_STRING_LEN WCHAR InstanceID[MAX_STRING_LENGTH];
GTH];
// the NET_LUID for the interface
ULONG64 InterfaceLuid;
// address list // address list
ADDRESS_LIST_DESCRIPTOR AddrListDesc; ADDRESS_LIST_DESCRIPTOR AddrListDesc;
} TC_SUPPORTED_INFO_BUFFER, *PTC_SUPPORTED_INFO_BUFFER; } TC_SUPPORTED_INFO_BUFFER, *PTC_SUPPORTED_INFO_BUFFER;
// //
// Filters are used to match packets. The Pattern field // Filters are used to match packets. The Pattern field
// indicates the values to which bits in corresponding // indicates the values to which bits in corresponding
// positions in candidate packets should be compared. The // positions in candidate packets should be compared. The
// Mask field indicates which bits are to be compared and // Mask field indicates which bits are to be compared and
// which bits are don't cares. // which bits are don't cares.
// //
// Different filters can be submitted on the TCI interface. // Different filters can be submitted on the TCI interface.
// The generic filter structure is defined to include an // The generic filter structure is defined to include an
// AddressType, which indicates the specific type of filter to // AddressType, which indicates the specific type of filter to
// follow. // follow.
// //
typedef struct _TC_GEN_FILTER { typedef struct _TC_GEN_FILTER {
USHORT AddressType; // IP, IPX, etc. USHORT AddressType; // IP, IPX, etc.
ULONG PatternSize; // byte count of the pattern ULONG PatternSize; // byte count of the pattern
PVOID Pattern; // specific format, e.g. IP_PATTERN __field_bcount(PatternSize) PVOID Pattern; // specific format, e.g.
PVOID Mask; // same type as Pattern IP_PATTERN
__field_bcount(PatternSize) PVOID Mask; // same type as Pattern
} TC_GEN_FILTER, *PTC_GEN_FILTER; } TC_GEN_FILTER, *PTC_GEN_FILTER;
// //
// A generic flow includes two flowspecs and a freeform // A generic flow includes two flowspecs and a freeform
// buffer which contains flow specific TC objects. // buffer which contains flow specific TC objects.
// //
typedef struct _TC_GEN_FLOW { typedef struct _TC_GEN_FLOW {
FLOWSPEC SendingFlowspec; FLOWSPEC SendingFlowspec;
FLOWSPEC ReceivingFlowspec; FLOWSPEC ReceivingFlowspec;
ULONG TcObjectsLength; // number of opti ULONG TcObjectsLength; // number of optional bytes
onal bytes QOS_OBJECT_HDR TcObjects[1];
QOS_OBJECT_HDR TcObjects[1];
} TC_GEN_FLOW, *PTC_GEN_FLOW; } TC_GEN_FLOW, *PTC_GEN_FLOW;
// //
// Format of specific pattern or mask used by GPC for the IP protocol // Format of specific pattern or mask used by GPC for the IP protocol
// //
typedef struct _IP_PATTERN { typedef struct _IP_PATTERN {
ULONG Reserved1; ULONG Reserved1;
ULONG Reserved2; ULONG Reserved2;
ULONG SrcAddr; ULONG SrcAddr;
ULONG DstAddr; ULONG DstAddr;
union { union {
struct { USHORT s_srcport,s_dstport; } S_un_ports; struct { USHORT s_srcport,s_dstport; } S_un_ports;
struct { UCHAR s_type,s_code; USHORT filler; } S_un_icmp; struct { UCHAR s_type,s_code; USHORT filler; } S_un_icmp;
ULONG S_Spi; ULONG S_Spi;
} S_un; } S_un;
UCHAR ProtocolId; UCHAR ProtocolId;
UCHAR Reserved3[3]; UCHAR Reserved3[3];
#define tcSrcPort S_un.S_un_ports.s_srcport #define tcSrcPort S_un.S_un_ports.s_srcport
#define tcDstPort S_un.S_un_ports.s_dstport #define tcDstPort S_un.S_un_ports.s_dstport
#define tcIcmpType S_un.S_un_icmp.s_type #define tcIcmpType S_un.S_un_icmp.s_type
#define tcIcmpCode S_un.S_un_icmp.s_code #define tcIcmpCode S_un.S_un_icmp.s_code
#define tcSpi S_un.S_Spi #define tcSpi S_un.S_Spi
} IP_PATTERN, *PIP_PATTERN; } IP_PATTERN, *PIP_PATTERN;
// //
// Format of specific pattern or mask used by GPC for the IPX protocol // Format of specific pattern or mask used by GPC for the IPX protocol
// //
typedef struct _IPX_PATTERN { typedef struct _IPX_PATTERN {
struct { struct {
ULONG NetworkAddress; ULONG NetworkAddress;
UCHAR NodeAddress[6]; UCHAR NodeAddress[6];
USHORT Socket; USHORT Socket;
} Src, Dest; } Src, Dest;
} IPX_PATTERN, *PIPX_PATTERN; } IPX_PATTERN, *PIPX_PATTERN;
// //
// The enumeration buffer is the flow parameters + a list of filters // The enumeration buffer is the flow parameters + a list of filters
// //
typedef struct _ENUMERATION_BUFFER { typedef struct _ENUMERATION_BUFFER {
ULONG Length; ULONG Length;
ULONG OwnerProcessId; ULONG OwnerProcessId;
USHORT FlowNameLength; USHORT FlowNameLength;
WCHAR FlowName[MAX_STRING_LENGTH]; WCHAR FlowName[MAX_STRING_LENGTH];
PTC_GEN_FLOW pFlow; PTC_GEN_FLOW pFlow;
ULONG NumberOfFilters; ULONG NumberOfFilters;
TC_GEN_FILTER GenericFilter[1]; // one for each filter TC_GEN_FILTER GenericFilter[1]; // one for each filter
} ENUMERATION_BUFFER, *PENUMERATION_BUFFER; } ENUMERATION_BUFFER, *PENUMERATION_BUFFER;
// //
// QoS objects supported by traffic // QoS objects supported by traffic
// //
#define QOS_TRAFFIC_GENERAL_ID_BASE 4000 #define QOS_TRAFFIC_GENERAL_ID_BASE 4000
#define QOS_OBJECT_DS_CLASS (0x00000001 + QOS_TRAFFIC_GENERAL _ID_BASE) #define QOS_OBJECT_DS_CLASS (0x00000001 + QOS_TRAFFIC_GENERAL _ID_BASE)
/* QOS_DS_CLASS structure passed */ /* QOS_DS_CLASS structure passed */
#define QOS_OBJECT_TRAFFIC_CLASS (0x00000002 + QOS_TRAFFIC_GENERAL _ID_BASE) #define QOS_OBJECT_TRAFFIC_CLASS (0x00000002 + QOS_TRAFFIC_GENERAL _ID_BASE)
/* QOS_Traffic class structure passed */ /* QOS_Traffic class structure passed */
#define QOS_OBJECT_DIFFSERV (0x00000003 + QOS_TRAFFIC_GENERAL _ID_BASE) #define QOS_OBJECT_DIFFSERV (0x00000003 + QOS_TRAFFIC_GENERAL _ID_BASE)
/* QOS_DIFFSERV Structure */ /* QOS_DIFFSERV Structure */
#define QOS_OBJECT_TCP_TRAFFIC (0x00000004 + QOS_TRAFFIC_GENERAL _ID_BASE) #define QOS_OBJECT_TCP_TRAFFIC (0x00000004 + QOS_TRAFFIC_GENERAL _ID_BASE)
/* QOS_TCP_TRAFFIC structure */ /* QOS_TCP_TRAFFIC structure */
#define QOS_OBJECT_FRIENDLY_NAME (0x00000005 + QOS_TRAFFIC_GENERAL _ID_BASE) #define QOS_OBJECT_FRIENDLY_NAME (0x00000005 + QOS_TRAFFIC_GENERAL _ID_BASE)
/* QOS_FRIENDLY_NAME structure */ /* QOS_FRIENDLY_NAME structure */
#define QOS_OBJECT_STARTING_RATE (0x00000006 + QOS_TRAFFIC_GENERAL
_ID_BASE)
/* QOS_STARTING_RATE structure */
// //
// This structure is used to associate a friendly name with the flow // This structure is used to associate a friendly name with the flow
// //
typedef struct _QOS_FRIENDLY_NAME { typedef struct _QOS_FRIENDLY_NAME {
QOS_OBJECT_HDR ObjectHdr; QOS_OBJECT_HDR ObjectHdr;
WCHAR FriendlyName[MAX_STRING_LENGTH]; WCHAR FriendlyName[MAX_STRING_LENGTH];
} QOS_FRIENDLY_NAME, *LPQOS_FRIENDLY_NAME; } QOS_FRIENDLY_NAME, *LPQOS_FRIENDLY_NAME;
skipping to change at line 340 skipping to change at line 347
// This structure is passed to indicate that the IP Precedence and UserPriority mappings for the flow // This structure is passed to indicate that the IP Precedence and UserPriority mappings for the flow
// have to be set to the system defaults for TCP traffic. If this object is pass ed, // have to be set to the system defaults for TCP traffic. If this object is pass ed,
// the ServiceType ==> DSField mapping, ServiceType ==> UserPriorityMapping, QOS _OBJECT_DS_CLASS // the ServiceType ==> DSField mapping, ServiceType ==> UserPriorityMapping, QOS _OBJECT_DS_CLASS
// and QOS_OBJECT_TRAFFIC_CLASS will be ignored. // and QOS_OBJECT_TRAFFIC_CLASS will be ignored.
// //
typedef struct _QOS_TCP_TRAFFIC { typedef struct _QOS_TCP_TRAFFIC {
QOS_OBJECT_HDR ObjectHdr; QOS_OBJECT_HDR ObjectHdr;
} QOS_TCP_TRAFFIC, *LPQOS_TCP_TRAFFIC; } QOS_TCP_TRAFFIC, *LPQOS_TCP_TRAFFIC;
typedef struct _QOS_STARTING_RATE {
QOS_OBJECT_HDR ObjectHdr;
ULONG StartingTokenRate; // In bytes per second
ULONG RampingTime; // In Milliseconds
} QOS_STARTING_RATE, *LPQOS_STARTING_RATE;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
// Interface Function Definitions // Interface Function Definitions
// //
#pragma deprecated(TcRegisterClient)
ULONG ULONG
APIENTRY APIENTRY
TcRegisterClient( TcRegisterClient(
IN ULONG TciVersion, IN ULONG TciVersion,
IN HANDLE ClRegCtx, IN HANDLE ClRegCtx,
IN PTCI_CLIENT_FUNC_LIST ClientHandlerList, IN PTCI_CLIENT_FUNC_LIST ClientHandlerList,
OUT PHANDLE pClientHandle OUT PHANDLE pClientHandle
); );
#pragma deprecated(TcEnumerateInterfaces)
ULONG ULONG
APIENTRY APIENTRY
TcEnumerateInterfaces( TcEnumerateInterfaces(
IN HANDLE ClientHandle, IN HANDLE ClientHandle,
IN OUT PULONG pBufferSize, IN OUT PULONG pBufferSize,
OUT PTC_IFC_DESCRIPTOR InterfaceBuffer OUT PTC_IFC_DESCRIPTOR InterfaceBuffer
); );
#pragma deprecated(TcOpenInterfaceA)
ULONG ULONG
APIENTRY APIENTRY
TcOpenInterfaceA( TcOpenInterfaceA(
IN LPSTR pInterfaceName, __in LPSTR pInterfaceName,
IN HANDLE ClientHandle, IN HANDLE ClientHandle,
IN HANDLE ClIfcCtx, IN HANDLE ClIfcCtx,
OUT PHANDLE pIfcHandle OUT PHANDLE pIfcHandle
); );
#pragma deprecated(TcOpenInterfaceW)
ULONG ULONG
APIENTRY APIENTRY
TcOpenInterfaceW( TcOpenInterfaceW(
IN LPWSTR pInterfaceName, __in LPWSTR pInterfaceName,
IN HANDLE ClientHandle, IN HANDLE ClientHandle,
IN HANDLE ClIfcCtx, IN HANDLE ClIfcCtx,
OUT PHANDLE pIfcHandle OUT PHANDLE pIfcHandle
); );
#pragma deprecated(TcCloseInterface)
ULONG ULONG
APIENTRY APIENTRY
TcCloseInterface( TcCloseInterface(
IN HANDLE IfcHandle IN HANDLE IfcHandle
); );
#pragma deprecated(TcQueryInterface)
ULONG ULONG
APIENTRY APIENTRY
TcQueryInterface( TcQueryInterface(
IN HANDLE IfcHandle, IN HANDLE IfcHandle,
IN LPGUID pGuidParam, IN LPGUID pGuidParam,
IN BOOLEAN NotifyChange, IN BOOLEAN NotifyChange,
IN OUT PULONG pBufferSize, IN OUT PULONG pBufferSize,
OUT PVOID Buffer OUT PVOID Buffer
); );
#pragma deprecated(TcSetInterface)
ULONG ULONG
APIENTRY APIENTRY
TcSetInterface( TcSetInterface(
IN HANDLE IfcHandle, IN HANDLE IfcHandle,
IN LPGUID pGuidParam, IN LPGUID pGuidParam,
IN ULONG BufferSize, IN ULONG BufferSize,
IN PVOID Buffer IN PVOID Buffer
); );
#pragma deprecated(TcQueryFlowA)
ULONG ULONG
APIENTRY APIENTRY
TcQueryFlowA( TcQueryFlowA(
IN LPSTR pFlowName, __in LPSTR pFlowName,
IN LPGUID pGuidParam, IN LPGUID pGuidParam,
IN OUT PULONG pBufferSize, IN OUT PULONG pBufferSize,
OUT PVOID Buffer OUT PVOID Buffer
); );
#pragma deprecated(TcQueryFlowW)
ULONG ULONG
APIENTRY APIENTRY
TcQueryFlowW( TcQueryFlowW(
IN LPWSTR pFlowName, __in LPWSTR pFlowName,
IN LPGUID pGuidParam, IN LPGUID pGuidParam,
IN OUT PULONG pBufferSize, IN OUT PULONG pBufferSize,
OUT PVOID Buffer OUT PVOID Buffer
); );
#pragma deprecated(TcSetFlowA)
ULONG ULONG
APIENTRY APIENTRY
TcSetFlowA( TcSetFlowA(
IN LPSTR pFlowName, __in LPSTR pFlowName,
IN LPGUID pGuidParam, IN LPGUID pGuidParam,
IN ULONG BufferSize, IN ULONG BufferSize,
IN PVOID Buffer IN PVOID Buffer
); );
#pragma deprecated(TcSetFlowW)
ULONG ULONG
APIENTRY APIENTRY
TcSetFlowW( TcSetFlowW(
IN LPWSTR pFlowName, __in LPWSTR pFlowName,
IN LPGUID pGuidParam, IN LPGUID pGuidParam,
IN ULONG BufferSize, IN ULONG BufferSize,
IN PVOID Buffer IN PVOID Buffer
); );
#pragma deprecated(TcAddFlow)
ULONG ULONG
APIENTRY APIENTRY
TcAddFlow( TcAddFlow(
IN HANDLE IfcHandle, IN HANDLE IfcHandle,
IN HANDLE ClFlowCtx, IN HANDLE ClFlowCtx,
IN ULONG Flags, IN ULONG Flags,
IN PTC_GEN_FLOW pGenericFlow, IN PTC_GEN_FLOW pGenericFlow,
OUT PHANDLE pFlowHandle OUT PHANDLE pFlowHandle
); );
#pragma deprecated(TcGetFlowNameA)
ULONG ULONG
APIENTRY APIENTRY
TcGetFlowNameA( TcGetFlowNameA(
IN HANDLE FlowHandle, IN HANDLE FlowHandle,
IN ULONG StrSize, IN ULONG StrSize,
OUT LPSTR pFlowName __out_ecount(StrSize) LPSTR pFlowName
); );
#pragma deprecated(TcGetFlowNameW)
ULONG ULONG
APIENTRY APIENTRY
TcGetFlowNameW( TcGetFlowNameW(
IN HANDLE FlowHandle, IN HANDLE FlowHandle,
IN ULONG StrSize, IN ULONG StrSize,
OUT LPWSTR pFlowName __out_ecount(StrSize) LPWSTR pFlowName
); );
#pragma deprecated(TcModifyFlow)
ULONG ULONG
APIENTRY APIENTRY
TcModifyFlow( TcModifyFlow(
IN HANDLE FlowHandle, IN HANDLE FlowHandle,
IN PTC_GEN_FLOW pGenericFlow IN PTC_GEN_FLOW pGenericFlow
); );
#pragma deprecated(TcAddFilter)
ULONG ULONG
APIENTRY APIENTRY
TcAddFilter( TcAddFilter(
IN HANDLE FlowHandle, IN HANDLE FlowHandle,
IN PTC_GEN_FILTER pGenericFilter, IN PTC_GEN_FILTER pGenericFilter,
OUT PHANDLE pFilterHandle OUT PHANDLE pFilterHandle
); );
#pragma deprecated(TcDeregisterClient)
ULONG ULONG
APIENTRY APIENTRY
TcDeregisterClient( TcDeregisterClient(
IN HANDLE ClientHandle IN HANDLE ClientHandle
); );
#pragma deprecated(TcDeleteFlow)
ULONG ULONG
APIENTRY APIENTRY
TcDeleteFlow( TcDeleteFlow(
IN HANDLE FlowHandle IN HANDLE FlowHandle
); );
#pragma deprecated(TcDeleteFilter)
ULONG ULONG
APIENTRY APIENTRY
TcDeleteFilter( TcDeleteFilter(
IN HANDLE FilterHandle IN HANDLE FilterHandle
); );
#pragma deprecated(TcEnumerateFlows)
ULONG ULONG
APIENTRY APIENTRY
TcEnumerateFlows( TcEnumerateFlows(
IN HANDLE IfcHandle, IN HANDLE IfcHandle,
IN OUT PHANDLE pEnumHandle, IN OUT PHANDLE pEnumHandle,
IN OUT PULONG pFlowCount, IN OUT PULONG pFlowCount,
IN OUT PULONG pBufSize, IN OUT PULONG pBufSize,
OUT PENUMERATION_BUFFER Buffer OUT PENUMERATION_BUFFER Buffer
); );
#ifdef UNICODE #ifdef UNICODE
#define TcOpenInterface TcOpenInterfaceW #define TcOpenInterface TcOpenInterfaceW
#define TcQueryFlow TcQueryFlowW #define TcQueryFlow TcQueryFlowW
#define TcSetFlow TcSetFlowW #define TcSetFlow TcSetFlowW
#define TcGetFlowName TcGetFlowNameW #define TcGetFlowName TcGetFlowNameW
#else // UNICODE #else // UNICODE
#define TcOpenInterface TcOpenInterfaceA #define TcOpenInterface TcOpenInterfaceA
#define TcQueryFlow TcQueryFlowA #define TcQueryFlow TcQueryFlowA
#define TcSetFlow TcSetFlowA #define TcSetFlow TcSetFlowA
#define TcGetFlowName TcGetFlowNameA #define TcGetFlowName TcGetFlowNameA
#endif // UNICODE #endif // UNICODE
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 69 change blocks. 
139 lines changed or deleted 191 lines changed or added

This html diff was produced by rfcdiff 1.41.