Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

937 lines
14 KiB

#include "dspch.h"
#pragma hdrstop
#include <w32topl.h>
//
// Notes on stub behavior
//
//
// Whenever possible, STATUS_PROCEDURE_NOT_FOUHD, ERROR_PROC_NOT_FOUND, NULL,
// or FALSE is returned.
//
//
// Some of the functions below require the caller to look at an OUT
// parameter to determine whether the results of the function (in addition
// or independent of the return value). Since these are private functions
// there is no need in shipping code to check for the validity of the OUT
// parameter (typically a pointer). These values should always be present
// in RTM versions.
//
//
// Some functions don't return a status and were designed to never fail
// (for example, functions that effectively do a table lookup). For these
// functions there is no reasonable return value. However, this is not
// a practical issue since these API's would only be called after the DS
// initialized which means that API would have already been "snapped" in via
// GetProcAddress().
//
// Of course, it is possible to rewrite these routines to return errors,
// however, as above, this will have no practical effect.
//
static
TOPL_LIST
ToplListCreate(
VOID
)
{
return NULL;
}
static
VOID
ToplListFree(
IN TOPL_LIST List,
IN BOOLEAN fRecursive // TRUE implies free the elements contained
// in the list
)
{
return;
}
static
VOID
ToplListSetIter(
IN TOPL_LIST List,
IN TOPL_ITERATOR Iterator
)
{
return;
}
static
TOPL_LIST_ELEMENT
ToplListRemoveElem(
IN TOPL_LIST List,
IN TOPL_LIST_ELEMENT Elem
)
{
return NULL;
}
static
VOID
ToplListAddElem(
IN TOPL_LIST List,
IN TOPL_LIST_ELEMENT Elem
)
{
return;
}
static
DWORD
ToplListNumberOfElements(
IN TOPL_LIST List
)
{
return 0;
}
static
TOPL_ITERATOR
ToplIterCreate(
VOID
)
{
return NULL;
}
static
VOID
ToplIterFree(
IN TOPL_ITERATOR Iterator
)
{
return;
}
static
TOPL_LIST_ELEMENT
ToplIterGetObject(
IN TOPL_ITERATOR Iterator
)
{
return NULL;
}
static
VOID
ToplIterAdvance(
IN TOPL_ITERATOR Iterator
)
{
return;
}
static
TOPL_EDGE
ToplEdgeCreate(
VOID
)
{
return NULL;
}
static
VOID
ToplEdgeFree(
IN TOPL_EDGE Edge
)
{
return;
}
static
VOID
ToplEdgeSetToVertex(
IN TOPL_EDGE Edge,
IN TOPL_VERTEX ToVertex
)
{
return;
}
static
TOPL_VERTEX
ToplEdgeGetToVertex(
IN TOPL_EDGE Edge
)
{
return NULL;
}
static
VOID
ToplEdgeSetFromVertex(
IN TOPL_EDGE Edge,
IN TOPL_VERTEX FromVertex
)
{
return;
}
static
TOPL_VERTEX
ToplEdgeGetFromVertex(
IN TOPL_EDGE Edge
)
{
return NULL;
}
static
VOID
ToplEdgeAssociate(
IN TOPL_EDGE Edge
)
{
return;
}
static
VOID
ToplEdgeDisassociate(
IN TOPL_EDGE Edge
)
{
return;
}
static
VOID
ToplEdgeSetWeight(
IN TOPL_EDGE Edge,
IN DWORD Weight
)
{
return;
}
static
DWORD
ToplEdgeGetWeight(
IN TOPL_EDGE Edge
)
{
return 0;
}
static
TOPL_VERTEX
ToplVertexCreate(
VOID
)
{
return NULL;
}
static
VOID
ToplVertexFree(
IN TOPL_VERTEX Vertex
)
{
return;
}
static
VOID
ToplVertexSetId(
IN TOPL_VERTEX Vertex,
IN DWORD Id
)
{
return;
}
static
DWORD
ToplVertexGetId(
IN TOPL_VERTEX Vertex
)
{
return 0;
}
static
DWORD
ToplVertexNumberOfInEdges(
IN TOPL_VERTEX Vertex
)
{
return 0;
}
static
TOPL_EDGE
ToplVertexGetInEdge(
IN TOPL_VERTEX Vertex,
IN DWORD Index
)
{
return NULL;
}
static
DWORD
ToplVertexNumberOfOutEdges(
IN TOPL_VERTEX Vertex
)
{
return 0;
}
static
TOPL_EDGE
ToplVertexGetOutEdge(
IN TOPL_VERTEX Vertex,
IN DWORD Index
)
{
return NULL;
}
static
VOID
ToplVertexSetParent(
IN TOPL_VERTEX Vertex,
IN TOPL_VERTEX Parent
)
{
return;
}
static
TOPL_VERTEX
ToplVertexGetParent(
IN TOPL_VERTEX Vertex
)
{
return NULL;
}
static
TOPL_GRAPH
ToplGraphCreate(
VOID
)
{
return NULL;
}
static
VOID
ToplGraphFree(
IN TOPL_GRAPH Graph,
IN BOOLEAN fRecursive // TRUE implies recursively free the vertices
// that have been added to this graph
)
{
return;
}
static
VOID
ToplGraphAddVertex(
IN TOPL_GRAPH Graph,
IN TOPL_VERTEX VertexToAdd,
IN PVOID VertexName
)
{
return;
}
static
TOPL_VERTEX
ToplGraphRemoveVertex(
IN TOPL_GRAPH Graph,
IN TOPL_VERTEX VertexToRemove
)
{
return NULL;
}
static
VOID
ToplGraphSetVertexIter(
IN TOPL_GRAPH Graph,
IN TOPL_ITERATOR Iter
)
{
return;
}
static
DWORD
ToplGraphNumberOfVertices(
IN TOPL_GRAPH Graph
)
{
return 0;
}
static
VOID
ToplFree(
VOID *p
)
{
return;
}
static
DWORD
ToplSetAllocator(
IN TOPL_ALLOC * pfAlloc OPTIONAL,
IN TOPL_REALLOC * pfReAlloc OPTIONAL,
IN TOPL_FREE * pfFree OPTIONAL
)
{
return ERROR_PROC_NOT_FOUND;
}
static
VOID
ToplGraphMakeRing(
IN TOPL_GRAPH Graph,
IN DWORD Flags,
OUT TOPL_LIST EdgesToAdd,
OUT TOPL_EDGE **EdgesToKeep,
OUT ULONG *cEdgesToKeep
)
{
return;
}
static
TOPL_COMPONENTS*
ToplGraphFindEdgesForMST(
IN TOPL_GRAPH Graph,
IN TOPL_VERTEX RootVertex,
IN TOPL_VERTEX VertexOfInterest,
OUT TOPL_EDGE **EdgesNeeded,
OUT ULONG* cEdgesNeeded
)
{
if (EdgesNeeded != NULL) {
*EdgesNeeded = NULL;
}
if (cEdgesNeeded != NULL) {
*cEdgesNeeded = 0;
}
return NULL;
}
static
VOID
ToplVertexInit(
PVERTEX V
)
{
return;
}
static
VOID
ToplVertexDestroy(
PVERTEX V
)
{
return;
}
static
VOID
ToplGraphInit(
PGRAPH G
)
{
return;
}
static
VOID
ToplGraphDestroy(
PGRAPH G
)
{
return;
}
static
VOID
ToplEdgeInit(
PEDGE E
)
{
return;
}
static
VOID
ToplEdgeDestroy(
PEDGE E
)
{
return;
}
static
int
ToplIsToplException(
DWORD ErrorCode
)
{
return EXCEPTION_CONTINUE_SEARCH;
}
static
TOPL_SCHEDULE
ToplGetAlwaysSchedule(
IN TOPL_SCHEDULE_CACHE ScheduleCache
)
{
return NULL;
}
static
TOPL_SCHEDULE_CACHE
ToplScheduleCacheCreate(
VOID
)
{
return NULL;
}
static
VOID
ToplScheduleCacheDestroy(
IN TOPL_SCHEDULE_CACHE ScheduleCache
)
{
return;
}
static
TOPL_SCHEDULE
ToplScheduleCreate(
IN TOPL_SCHEDULE_CACHE ScheduleCache,
IN DWORD IntervalInMinutes,
IN TOPL_SCHEDULE TemplateSchedule OPTIONAL,
IN DWORD StaggeringNumber
)
{
return NULL;
}
static
DWORD
ToplScheduleDuration(
IN TOPL_SCHEDULE Schedule
)
{
return 0;
}
static
PSCHEDULE
ToplScheduleExportReadonly(
IN TOPL_SCHEDULE_CACHE ScheduleCache,
IN TOPL_SCHEDULE Schedule
)
{
return NULL;
}
static
TOPL_SCHEDULE
ToplScheduleImport(
IN TOPL_SCHEDULE_CACHE ScheduleCache,
IN PSCHEDULE pExternalSchedule
)
{
return NULL;
}
static
BOOLEAN
ToplScheduleIsEqual(
IN TOPL_SCHEDULE_CACHE ScheduleCache,
IN TOPL_SCHEDULE Schedule1,
IN TOPL_SCHEDULE Schedule2
)
{
return FALSE;
}
static
DWORD
ToplScheduleMaxUnavailable(
IN TOPL_SCHEDULE Schedule
)
{
return 0;
}
static
TOPL_SCHEDULE
ToplScheduleMerge(
IN TOPL_SCHEDULE_CACHE ScheduleCache,
IN TOPL_SCHEDULE Schedule1,
IN TOPL_SCHEDULE Schedule2,
OUT PBOOLEAN fIsNever
)
{
if (fIsNever != NULL) {
*fIsNever = FALSE;
}
return NULL;
}
static
DWORD
ToplScheduleNumEntries(
IN TOPL_SCHEDULE_CACHE ScheduleCache
)
{
return 0;
}
static
BOOLEAN
ToplScheduleValid(
IN TOPL_SCHEDULE Schedule
)
{
return FALSE;
}
static
BOOLEAN
ToplPScheduleValid(
IN PSCHEDULE Schedule
)
{
return FALSE;
}
static
VOID
ToplAddEdgeSetToGraph(
IN PTOPL_GRAPH_STATE G,
IN PTOPL_MULTI_EDGE_SET s
)
{
return;
}
static
PTOPL_MULTI_EDGE
ToplAddEdgeToGraph(
IN PTOPL_GRAPH_STATE G,
IN DWORD numVtx,
IN DWORD edgeType,
IN PTOPL_REPL_INFO ri
)
{
return NULL;
}
static
VOID
ToplDeleteComponents(
PTOPL_COMPONENTS pComponents
)
{
return;
}
static
VOID
ToplDeleteGraphState(
PTOPL_GRAPH_STATE G
)
{
return;
}
static
VOID
ToplDeleteSpanningTreeEdges(
PTOPL_MULTI_EDGE *stEdgeList,
DWORD numStEdges )
{
return;
}
static
VOID
ToplEdgeSetVtx(
IN PTOPL_GRAPH_STATE G,
IN PTOPL_MULTI_EDGE e,
IN DWORD whichVtx,
IN PVOID vtxName
)
{
return;
}
static
PTOPL_MULTI_EDGE*
ToplGetSpanningTreeEdgesForVtx(
IN PTOPL_GRAPH_STATE G,
IN PVOID whichVtxName,
IN TOPL_COLOR_VERTEX *colorVtx,
IN DWORD numColorVtx,
OUT DWORD *numStEdges,
OUT PTOPL_COMPONENTS pComponents
)
{
if (numStEdges != NULL) {
*numStEdges = 0;
}
return NULL;
}
static
PTOPL_GRAPH_STATE
ToplMakeGraphState(
IN PVOID* vertexNames,
IN DWORD numVertices,
IN TOPL_COMPARISON_FUNC vnCompFunc,
IN TOPL_SCHEDULE_CACHE schedCache
)
{
return NULL;
}
typedef struct _TOPL_HEAP_INFO
{
PVOID* Array;
ULONG cArray;
DWORD (*pfnKey)( VOID *p );
ULONG MaxElements;
} TOPL_HEAP_INFO, *PTOPL_HEAP_INFO;
static
BOOLEAN
ToplHeapCreate(
OUT PTOPL_HEAP_INFO Heap,
IN ULONG cArray,
IN DWORD (*pfnKey)( VOID *p )
)
{
return FALSE;
}
static
VOID
ToplHeapDestroy(
IN OUT PTOPL_HEAP_INFO Heap
)
{
return;
}
static
PVOID
ToplHeapExtractMin(
IN PTOPL_HEAP_INFO Heap
)
{
return NULL;
}
static
VOID
ToplHeapInsert(
IN PTOPL_HEAP_INFO Heap,
IN PVOID Element
)
{
return;
}
static
BOOLEAN
ToplHeapIsEmpty(
IN PTOPL_HEAP_INFO Heap
)
{
return TRUE;
}
static
BOOLEAN
ToplHeapIsElementOf(
IN PTOPL_HEAP_INFO Heap,
IN PVOID Element
)
{
return FALSE;
}
typedef int (*STHEAP_COMPARE_FUNC)( PVOID el1, PVOID el2, PVOID extra );
typedef int (*STHEAP_GET_LOCN_FUNC)( PVOID el1, PVOID extra );
typedef VOID (*STHEAP_SET_LOCN_FUNC)( PVOID el1, int l, PVOID extra );
typedef struct {
DWORD nextFreeSpot, maxSize;
PVOID *data;
STHEAP_COMPARE_FUNC Comp;
STHEAP_GET_LOCN_FUNC GetLocn;
STHEAP_SET_LOCN_FUNC SetLocn;
PVOID extra;
} STHEAP;
typedef STHEAP *PSTHEAP;
static
PSTHEAP
ToplSTHeapInit(
DWORD maxSize,
STHEAP_COMPARE_FUNC Comp,
STHEAP_GET_LOCN_FUNC GetLocn,
STHEAP_SET_LOCN_FUNC SetLocn,
PVOID extra
)
{
return NULL;
}
static
VOID
ToplSTHeapDestroy(
PSTHEAP heap
)
{
return;
}
static
VOID
ToplSTHeapAdd(
PSTHEAP heap,
PVOID element
)
{
return;
}
static
PVOID
ToplSTHeapExtractMin(
PSTHEAP heap
)
{
return NULL;
}
static
VOID
ToplSTHeapCostReduced(
PSTHEAP heap,
PVOID element
)
{
return;
}
//
// !! WARNING !! The entries below must be in alphabetical order, and are CASE SENSITIVE (eg lower case comes last!)
//
DEFINE_PROCNAME_ENTRIES(w32topl)
{
DLPENTRY(ToplAddEdgeSetToGraph)
DLPENTRY(ToplAddEdgeToGraph)
DLPENTRY(ToplDeleteComponents)
DLPENTRY(ToplDeleteGraphState)
DLPENTRY(ToplDeleteSpanningTreeEdges)
DLPENTRY(ToplEdgeAssociate)
DLPENTRY(ToplEdgeCreate)
DLPENTRY(ToplEdgeDestroy)
DLPENTRY(ToplEdgeDisassociate)
DLPENTRY(ToplEdgeFree)
DLPENTRY(ToplEdgeGetFromVertex)
DLPENTRY(ToplEdgeGetToVertex)
DLPENTRY(ToplEdgeGetWeight)
DLPENTRY(ToplEdgeInit)
DLPENTRY(ToplEdgeSetFromVertex)
DLPENTRY(ToplEdgeSetToVertex)
DLPENTRY(ToplEdgeSetVtx)
DLPENTRY(ToplEdgeSetWeight)
DLPENTRY(ToplFree)
DLPENTRY(ToplGetAlwaysSchedule)
DLPENTRY(ToplGetSpanningTreeEdgesForVtx)
DLPENTRY(ToplGraphAddVertex)
DLPENTRY(ToplGraphCreate)
DLPENTRY(ToplGraphDestroy)
DLPENTRY(ToplGraphFindEdgesForMST)
DLPENTRY(ToplGraphFree)
DLPENTRY(ToplGraphInit)
DLPENTRY(ToplGraphMakeRing)
DLPENTRY(ToplGraphNumberOfVertices)
DLPENTRY(ToplGraphRemoveVertex)
DLPENTRY(ToplGraphSetVertexIter)
DLPENTRY(ToplHeapCreate)
DLPENTRY(ToplHeapDestroy)
DLPENTRY(ToplHeapExtractMin)
DLPENTRY(ToplHeapInsert)
DLPENTRY(ToplHeapIsElementOf)
DLPENTRY(ToplHeapIsEmpty)
DLPENTRY(ToplIsToplException)
DLPENTRY(ToplIterAdvance)
DLPENTRY(ToplIterCreate)
DLPENTRY(ToplIterFree)
DLPENTRY(ToplIterGetObject)
DLPENTRY(ToplListAddElem)
DLPENTRY(ToplListCreate)
DLPENTRY(ToplListFree)
DLPENTRY(ToplListNumberOfElements)
DLPENTRY(ToplListRemoveElem)
DLPENTRY(ToplListSetIter)
DLPENTRY(ToplMakeGraphState)
DLPENTRY(ToplPScheduleValid)
DLPENTRY(ToplSTHeapAdd)
DLPENTRY(ToplSTHeapCostReduced)
DLPENTRY(ToplSTHeapDestroy)
DLPENTRY(ToplSTHeapExtractMin)
DLPENTRY(ToplSTHeapInit)
DLPENTRY(ToplScheduleCacheCreate)
DLPENTRY(ToplScheduleCacheDestroy)
DLPENTRY(ToplScheduleCreate)
DLPENTRY(ToplScheduleDuration)
DLPENTRY(ToplScheduleExportReadonly)
DLPENTRY(ToplScheduleImport)
DLPENTRY(ToplScheduleIsEqual)
DLPENTRY(ToplScheduleMaxUnavailable)
DLPENTRY(ToplScheduleMerge)
DLPENTRY(ToplScheduleNumEntries)
DLPENTRY(ToplScheduleValid)
DLPENTRY(ToplSetAllocator)
DLPENTRY(ToplVertexCreate)
DLPENTRY(ToplVertexDestroy)
DLPENTRY(ToplVertexFree)
DLPENTRY(ToplVertexGetId)
DLPENTRY(ToplVertexGetInEdge)
DLPENTRY(ToplVertexGetOutEdge)
DLPENTRY(ToplVertexGetParent)
DLPENTRY(ToplVertexInit)
DLPENTRY(ToplVertexNumberOfInEdges)
DLPENTRY(ToplVertexNumberOfOutEdges)
DLPENTRY(ToplVertexSetId)
DLPENTRY(ToplVertexSetParent)
};
DEFINE_PROCNAME_MAP(w32topl)