windows-nt/Source/XPSP1/NT/net/qos/tc/dll/tcfwd.h

459 lines
6.7 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
tcfwd.h
Abstract:
This module contains the forward function definitions for all the functions in
the traffic control dll.
Author:
Jim Stewart (jstew) August 14, 1996
Revision History:
Ofer Bar (oferbar) Oct 1, 1997 - Revision II
--*/
#ifndef __TCFWD_H
#define __TCFWD_H
//
// tckrnl.c
//
DWORD
IoModifyFlow(
IN PFLOW_STRUC pFlow,
IN BOOLEAN Async
);
DWORD
IoAddFlow(
IN PFLOW_STRUC pFlow,
IN BOOLEAN Async
);
DWORD
IoAddClassMapFlow(
IN PFLOW_STRUC pFlow,
IN BOOLEAN Async
);
DWORD
IoDeleteFlow(
IN PFLOW_STRUC pFlow,
IN BOOLEAN Async
);
DWORD
IoAddFilter(
IN PFILTER_STRUC pFilter
);
DWORD
IoDeleteFilter(
IN PFILTER_STRUC pFilter
);
DWORD
IoRegisterClient(
IN PGPC_CLIENT pGpcClient
);
DWORD
IoDeregisterClient(
IN PGPC_CLIENT pGpcClient
);
DWORD
IoEnumerateFlows(
IN PGPC_CLIENT pGpcClient,
IN OUT PHANDLE pEnumHandle,
IN OUT PULONG pFlowCount,
IN OUT PULONG pBufSize,
OUT PGPC_ENUM_CFINFO_RES *ppBuffer
);
DWORD
IoRequestNotify(
VOID
//IN PGPC_CLIENT pGpcClient
);
VOID
CancelIoRequestNotify(
VOID
);
DWORD
StartGpcNotifyThread();
DWORD
StopGpcNotifyThread();
//
// tcutils.c
//
VOID
WsAssert(
IN PVOID FailedAssertion,
IN PVOID FileName,
IN ULONG LineNumber
);
VOID
WsPrintf (
char *Format,
...
);
VOID
SetupDebugInfo( void );
VOID
CloseDbgFile( void );
//
// handles.c
//
PVOID
GetHandleObjectWithRef(
IN HANDLE h,
IN ENUM_OBJECT_TYPE ObjType,
IN ULONG RefType
);
PVOID
GetHandleObject(
IN HANDLE h,
IN ENUM_OBJECT_TYPE ObjType
);
HANDLE
AllocateHandle(
IN PVOID Context
);
VOID
FreeHandle(
IN HANDLE Handle
);
//
// apiutil.c
//
VOID
MarkAllNodesForClosing(
PINTERFACE_STRUC pInterface,
STATE stateToMark
);
PTC_IFC
GetTcIfc(
IN LPWSTR pInterfaceName
);
PTC_IFC
GetTcIfcWithRef(
IN LPWSTR pInterfaceName,
IN ULONG RefType
);
DWORD
UpdateTcIfcList(
IN LPWSTR InstanceName,
IN ULONG IndicationBufferSize,
IN PTC_INDICATION_BUFFER IndicationBuffer,
IN DWORD IndicationCode
);
DWORD
CreateClientStruc(
IN HANDLE ClRegCtx,
OUT PCLIENT_STRUC *ppClient
);
DWORD
CreateClInterfaceStruc(
IN HANDLE ClIfcCtx,
OUT PINTERFACE_STRUC *ppClIfc
);
DWORD
CreateFlowStruc(
IN HANDLE ClFlowCtx,
IN PTC_GEN_FLOW pGenFlow,
OUT PFLOW_STRUC *ppFlow
);
DWORD
CreateClassMapFlowStruc(
IN HANDLE ClFlowCtx,
IN PTC_CLASS_MAP_FLOW pClassMapFlow,
OUT PFLOW_STRUC *ppFlow
);
DWORD
CreateFilterStruc(
IN PTC_GEN_FILTER pGenericFilter,
IN PFLOW_STRUC pFlow,
IN PFILTER_STRUC *ppFiler
);
VOID
DeleteFlowStruc(
IN PFLOW_STRUC pFlow
);
DWORD
EnumAllInterfaces(VOID);
DWORD
CloseInterface(
IN PINTERFACE_STRUC pInterface,
IN BOOLEAN RemoveFlows
);
PGPC_CLIENT
FindGpcClient(
IN ULONG CfInfoType
);
VOID
CloseOpenFlows(
IN PINTERFACE_STRUC pInterface
);
DWORD
DeleteFlow(
IN PFLOW_STRUC pFlow,
IN BOOLEAN RemoveFilters
);
DWORD
DeleteFilter(
IN PFILTER_STRUC pFilter
);
VOID
DeleteFilterStruc(
IN PFILTER_STRUC pFilter
);
VOID
CompleteAddFlow(
IN PFLOW_STRUC pFlow,
IN DWORD Status
);
VOID
CompleteAddClassMapFlow(
IN PFLOW_STRUC pFlow,
IN DWORD Status
);
VOID
CompleteModifyFlow(
IN PFLOW_STRUC pFlow,
IN DWORD Status
);
VOID
CompleteDeleteFlow(
IN PFLOW_STRUC pFlow,
IN DWORD Status
);
DWORD
OpenGpcClients(
IN ULONG CfInfoType
);
DWORD
DereferenceInterface(
IN PINTERFACE_STRUC pInterface
);
DWORD
DereferenceFlow(
IN PFLOW_STRUC pFlow
);
DWORD
DereferenceFilter(
IN PFILTER_STRUC pFilter
);
DWORD
DereferenceClient(
IN PCLIENT_STRUC pClient
);
DWORD
GetInterfaceIndex(
IN PADDRESS_LIST_DESCRIPTOR pAddressListDesc,
OUT PULONG pInterfaceIndex,
OUT PULONG pSpecificLinkCtx
);
DWORD
CreateKernelInterfaceStruc(
OUT PTC_IFC *ppTcIfc,
IN DWORD AddresssLength
);
DWORD
DereferenceKernelInterface(
PTC_IFC pTcIfc
);
//
// tcglob.c
//
DWORD
InitializeGlobalData();
VOID
DeInitializeGlobalData();
//
// callback.c
//
VOID
NTAPI CbAddFlowComplete(
IN PVOID ApcContext,
IN PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG Reserved
);
VOID
NTAPI CbModifyFlowComplete(
IN PVOID ApcContext,
IN PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG Reserved
);
VOID
NTAPI CbDeleteFlowComplete(
IN PVOID ApcContext,
IN PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG Reserved
);
VOID
NTAPI CbGpcNotifyRoutine(
IN PVOID ApcContext,
IN PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG Reserved
);
VOID
CbParamNotifyClient(
IN ULONG Context,
IN LPGUID pGuid,
IN LPWSTR InstanceName,
IN ULONG DataSize,
IN PVOID DataBuffer
);
VOID
CbInterfaceNotifyClient(
IN ULONG Context,
IN LPGUID pGuid,
IN LPWSTR InstanceName,
IN ULONG DataSize,
IN PVOID DataBuffer
);
//
// tcwmi.c
//
DWORD
InitializeWmi(VOID);
DWORD
DeInitializeWmi(VOID);
VOID
CbWmiParamNotification(
IN PWNODE_HEADER WnodeHeader,
IN ULONG Index
);
VOID
CbWmiInterfaceNotification(
IN PWNODE_HEADER WnodeHeader,
IN ULONG Index
);
DWORD
WalkWnode(
IN PWNODE_HEADER pWnodeHdr,
IN ULONG Context,
IN CB_PER_INSTANCE_ROUTINE CbPerInstance
);
//
// tcutils.c
//
ULONG
LockedDec(
IN PULONG Count
);
//
// tcnotify.c
//
ULONG
TcipAddToNotificationList(
IN LPGUID Guid,
IN PINTERFACE_STRUC IfcHandle,
IN ULONG Flags
);
ULONG
TcipDeleteFromNotificationList(
IN LPGUID Guid,
IN PINTERFACE_STRUC IfcHandle,
IN ULONG Flags
);
ULONG
TcipClientRegisteredForNotification(
IN LPGUID Guid,
IN PINTERFACE_STRUC IfcHandle,
IN ULONG Flags
);
ULONG
TcipDeleteInterfaceFromNotificationList(
IN PINTERFACE_STRUC IfcHandle,
IN ULONG Flags
);
#endif