|  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 | 
      |