API.H


#ifndef __SAMPLE_API_H__
#define __SAMPLE_API_H__


DWORD
APIENTRY
RegisterProtocol(
IN OUT PMPR_ROUTING_CHARACTERISTICS pRoutingChar,
IN OUT PMPR_SERVICE_CHARACTERISTICS pServiceChar
);

DWORD
APIENTRY
StartProtocol(
IN HANDLE hMgrNotifyEvent,
IN PSUPPORT_FUNCTIONS pSupportFunctions,
IN PVOID pConfig
);

DWORD
APIENTRY
StopProtocol(
VOID
);

DWORD
APIENTRY
GetGlobalInfo(
IN OUT PVOID pConfig,
IN OUT PDWORD pdwSize
);


DWORD
APIENTRY
SetGlobalInfo(
IN PVOID pConfig
);

DWORD
APIENTRY
AddInterface(
IN PWCHAR pwszInterfaceName,
IN DWORD dwIndex,
IN NET_INTERFACE_TYPE dwIfType,
IN PVOID pConfig
);

DWORD
APIENTRY
DeleteInterface(
IN DWORD dwIndex
);

DWORD
APIENTRY
GetEventMessage(
OUT ROUTING_PROTOCOL_EVENTS *pEvent,
OUT MESSAGE *pResult
);

DWORD
APIENTRY
GetInterfaceConfigInfo(
IN DWORD dwIndex,
IN OUT PVOID pConfig,
IN OUT PDWORD pdwSize
);

DWORD
APIENTRY
SetInterfaceConfigInfo(
IN DWORD dwIndex,
IN PVOID pConfig
);

DWORD
APIENTRY
BindInterface(
IN DWORD dwIndex,
IN PVOID pBinding
);

DWORD
APIENTRY
UnBindInterface(
IN DWORD dwIndex
);

DWORD
APIENTRY
EnableInterface(
IN DWORD dwIndex
);

DWORD
APIENTRY
DisableInterface(
IN DWORD dwIndex
);

DWORD
APIENTRY
DoUpdateRoutes(
IN DWORD dwIndex
);

DWORD
APIENTRY
MibCreate(
IN DWORD dwInputSize,
IN PVOID pInputData
);

DWORD
APIENTRY
MibDelete(
IN DWORD dwInputSize,
IN PVOID pInputData
);

DWORD
APIENTRY
MibGet(
IN DWORD dwInputSize,
IN PVOID pInputData,
IN OUT PDWORD pdwOutputSize,
OUT PVOID pOutputData
);

DWORD
APIENTRY
MibSet(
IN DWORD dwInputSize,
IN PVOID pInputData
);

DWORD
APIENTRY
MibGetFirst(
IN DWORD dwInputSize,
IN PVOID pInputData,
IN OUT PDWORD pdwOutputSize,
OUT PVOID pOutputData
);

DWORD
APIENTRY
MibGetNext(
IN DWORD dwInputSize,
IN PVOID pInputData,
IN OUT PDWORD pdwOutputSize,
OUT PVOID pOutputData
);


#endif // __SAMPLE_API_H__