250 lines
4.4 KiB
C
250 lines
4.4 KiB
C
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
cluxport.h
|
|
|
|
Abstract:
|
|
|
|
Cluster Transport public interface definition.
|
|
|
|
Author:
|
|
|
|
Mike Massa (mikemas) 18-April-1996
|
|
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef _CX_INCLUDED
|
|
#define _CX_INCLUDED
|
|
|
|
|
|
//
|
|
// Removed comment to make these official. This file
|
|
// does not appear to be being used. Nor do these
|
|
// constants. They are being left in only to avoid any
|
|
// unexpected breaking issues.
|
|
// EBK - 5/8/2000 Whistler bug # 83162
|
|
|
|
#define CX_ERROR_BASE 13000
|
|
|
|
#define ERROR_INCOMPATIBLE_TRANSPORT_VERSION (CX_ERROR_BASE + 1)
|
|
#define ERROR_OBJECT_NAME_NOT_FOUND (CX_ERROR_BASE + 2)
|
|
#define ERROR_NODE_NOT_FOUND (CX_ERROR_BASE + 3)
|
|
|
|
//
|
|
//
|
|
// Constants
|
|
//
|
|
//
|
|
|
|
|
|
//
|
|
//
|
|
// Types
|
|
//
|
|
//
|
|
typedef
|
|
VOID
|
|
(*CX_NODE_FAILURE_HANDLER)(
|
|
IN CL_NODE_ID NodeId,
|
|
IN LPVOID NodeFailureContext
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(*CX_DATAGRAM_RECEIVE_HANDLER)(
|
|
IN CL_NODE_ID SourceNode,
|
|
IN LPVOID Data,
|
|
IN DWORD DataLength
|
|
);
|
|
|
|
typedef struct {
|
|
CX_NODE_FAILURE_HANDLER NodeFailureHandler;
|
|
LPVOID NodeFailureContext;
|
|
} CX_INIT_INFO, *PCX_INIT_INFO;
|
|
|
|
typedef struct {
|
|
LPWSTR RpcProtSeq;
|
|
LPWSTR RpcClientProviderDll;
|
|
LPWSTR RpcServerProviderDll;
|
|
} CX_TRANSPORT_INFO, *PCX_TRANSPORT_INFO;;
|
|
|
|
typedef enum {
|
|
CxPublicInterconnect,
|
|
CxPrivateInterconnect
|
|
} CX_INTERCONNECT_TYPE;
|
|
|
|
typedef struct {
|
|
LPWSTR InterconnectName;
|
|
CX_INTERCONNECT_TYPE Type;
|
|
LPWSTR AdapterName;
|
|
LPWSTR TransportName;
|
|
} CX_INTERCONNECT_INFO, *PCX_INTERCONNECT_INFO;
|
|
|
|
typedef struct {
|
|
LPWSTR InterfaceName;
|
|
LPWSTR InterconnectName;
|
|
LPWSTR TransportName;
|
|
LPWSTR AddressName;
|
|
} CX_INTERFACE_INFO, *PCX_INTERFACE_INFO;
|
|
|
|
|
|
//
|
|
//
|
|
// Routines
|
|
//
|
|
//
|
|
DWORD
|
|
CxInitialize(
|
|
IN PCX_INIT_INFO InitInfo
|
|
);
|
|
|
|
VOID
|
|
CxShutdown(
|
|
VOID
|
|
);
|
|
|
|
DWORD
|
|
CxRegisterTransport(
|
|
IN LPWSTR TransportName,
|
|
IN PCX_TRANSPORT_INFO TransportInfo
|
|
);
|
|
|
|
DWORD
|
|
CxDeregisterTransport(
|
|
IN LPWSTR TransportName
|
|
);
|
|
|
|
VOID
|
|
CxDeregisterAllTransports(
|
|
IN VOID
|
|
);
|
|
|
|
DWORD
|
|
CxRegisterInterconnect(
|
|
IN PCX_INTERCONNECT_INFO InterconnectInfo
|
|
);
|
|
|
|
DWORD
|
|
CxDeregisterInterconnect(
|
|
IN LPWSTR InterconnectName
|
|
);
|
|
|
|
VOID
|
|
CxDeregisterAllInterconnects(
|
|
VOID
|
|
);
|
|
|
|
DWORD
|
|
CxEnumInterconnects(
|
|
IN OUT PCX_INTERCONNECT_INFO InterconnectInfo,
|
|
IN OUT LPDWORD InterconnectInfoSize,
|
|
OUT LPDWORD InterconnectCount
|
|
);
|
|
|
|
DWORD
|
|
CxRegisterNode(
|
|
IN LPWSTR NodeName,
|
|
IN CL_NODE_ID NodeId
|
|
);
|
|
|
|
DWORD
|
|
CxDeregisterNode(
|
|
IN CL_NODE_ID NodeId
|
|
);
|
|
|
|
VOID
|
|
CxDeregisterAllNodes(
|
|
VOID
|
|
);
|
|
|
|
DWORD
|
|
CxRegisterInterface(
|
|
IN LPWSTR InterfaceName,
|
|
IN CL_NODE_ID NodeId,
|
|
IN LPWSTR InterconnectName,
|
|
IN LPWSTR TransportName,
|
|
IN LPWSTR InterfaceAddress
|
|
);
|
|
|
|
DWORD
|
|
CxDeregisterInterface(
|
|
IN LPWSTR InterfaceName,
|
|
IN CL_NODE_ID NodeId
|
|
);
|
|
|
|
DWORD
|
|
CxEnumInterfaces(
|
|
IN CL_NODE_ID NodeId,
|
|
IN OUT PCX_INTERFACE_INFO InterfaceInfo,
|
|
IN OUT LPDWORD InterfaceInfoSize,
|
|
OUT LPDWORD InterfaceCount
|
|
);
|
|
|
|
DWORD
|
|
CxDestroyNodeInterfaces(
|
|
IN CL_NODE_ID NodeId
|
|
);
|
|
|
|
DWORD
|
|
CxLoadTransports(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
CxUnloadTransports(
|
|
VOID
|
|
);
|
|
|
|
DWORD
|
|
CxChangeNodeState(
|
|
IN CL_NODE_ID NodeId,
|
|
IN CLUSTER_NODE_STATE NewState
|
|
);
|
|
|
|
CLUSTER_NODE_STATE
|
|
CxGetNodeState(
|
|
IN CL_NODE_ID NodeId
|
|
);
|
|
|
|
HANDLE
|
|
CxOpenDatagramEndpoint(
|
|
IN LPWSTR EndpointName,
|
|
IN CX_DATAGRAM_RECEIVE_HANDLER ReceiveHandler,
|
|
IN DWORD MaximumDatagramSize
|
|
);
|
|
|
|
VOID
|
|
CxCloseDatagramEndpoint(
|
|
IN HANDLE EndpointHandle
|
|
);
|
|
|
|
HANDLE
|
|
CxOpenDatagramAddress(
|
|
IN CL_NODE_ID NodeId,
|
|
IN LPWSTR EndpointName
|
|
);
|
|
|
|
VOID
|
|
CxCloseDatagramAddress(
|
|
IN HANDLE AddressHandle
|
|
);
|
|
|
|
DWORD
|
|
CxSendDatagram(
|
|
IN HANDLE LocalEndpoint,
|
|
IN HANDLE ServerAddress,
|
|
IN LPVOID Data,
|
|
IN DWORD DataLength
|
|
);
|
|
|
|
|
|
#endif // _CX_INCLUDED
|
|
|