459 lines
6.7 KiB
C
459 lines
6.7 KiB
C
|
/*++
|
||
|
|
||
|
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
|