|
|
/*++
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
|