366 lines
6.5 KiB
C
366 lines
6.5 KiB
C
/*++
|
||
|
||
Copyright (c) 1997 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
cluxport.h
|
||
|
||
Abstract:
|
||
|
||
Cluster Transport definitions exposed within the Cluster Network Driver.
|
||
|
||
Author:
|
||
|
||
Mike Massa (mikemas) January 3, 1996
|
||
|
||
Revision History:
|
||
|
||
Who When What
|
||
-------- -------- ----------------------------------------------
|
||
mikemas 01-03-97 created
|
||
|
||
Notes:
|
||
|
||
--*/
|
||
|
||
#ifndef _CLUXPORT_INCLUDED
|
||
#define _CLUXPORT_INCLUDED
|
||
|
||
#include <tdi.h>
|
||
#include <tdikrnl.h>
|
||
#include <clustdi.h>
|
||
|
||
//
|
||
//
|
||
// Function Prototypes
|
||
//
|
||
//
|
||
|
||
//
|
||
// Initialization/Shutdown
|
||
//
|
||
NTSTATUS
|
||
CxLoad(
|
||
IN PUNICODE_STRING RegistryPath
|
||
);
|
||
|
||
VOID
|
||
CxUnload(
|
||
VOID
|
||
);
|
||
|
||
NTSTATUS
|
||
CxInitialize(
|
||
VOID
|
||
);
|
||
|
||
VOID
|
||
CxShutdown(
|
||
VOID
|
||
);
|
||
|
||
//
|
||
// Irp Dispatch
|
||
//
|
||
NTSTATUS
|
||
CxDispatchDeviceControl(
|
||
IN PIRP Irp,
|
||
IN PIO_STACK_LOCATION IrpSp
|
||
);
|
||
|
||
|
||
//
|
||
// Nodes
|
||
//
|
||
NTSTATUS
|
||
CxRegisterNode(
|
||
CL_NODE_ID NodeId
|
||
);
|
||
|
||
NTSTATUS
|
||
CxDeregisterNode(
|
||
CL_NODE_ID NodeId,
|
||
PIRP Irp,
|
||
PIO_STACK_LOCATION IrpSp
|
||
);
|
||
|
||
NTSTATUS
|
||
CxOnlineNodeComm(
|
||
CL_NODE_ID NodeId
|
||
);
|
||
|
||
NTSTATUS
|
||
CxOfflineNodeComm(
|
||
IN CL_NODE_ID NodeId,
|
||
IN PIRP Irp,
|
||
IN PIO_STACK_LOCATION IrpSp
|
||
);
|
||
|
||
NTSTATUS
|
||
CxGetNodeCommState(
|
||
IN CL_NODE_ID NodeId,
|
||
OUT PCLUSNET_NODE_COMM_STATE State
|
||
);
|
||
|
||
|
||
//
|
||
// Networks
|
||
//
|
||
NTSTATUS
|
||
CxRegisterNetwork(
|
||
CL_NETWORK_ID NetworkId,
|
||
ULONG Priority,
|
||
BOOLEAN Restricted
|
||
);
|
||
|
||
NTSTATUS
|
||
CxDeregisterNetwork(
|
||
CL_NETWORK_ID NetworkId,
|
||
PIRP Irp,
|
||
PIO_STACK_LOCATION IrpSp
|
||
);
|
||
|
||
NTSTATUS
|
||
CxOnlineNetwork(
|
||
IN CL_NETWORK_ID NetworkId,
|
||
IN PWCHAR TdiProviderName,
|
||
IN ULONG TdiProviderNameLength,
|
||
IN PTRANSPORT_ADDRESS TdiBindAddress,
|
||
IN ULONG TdiBindAddressLength,
|
||
IN PWCHAR AdapterName,
|
||
IN ULONG AdapterNameLength,
|
||
OUT PTDI_ADDRESS_INFO TdiBindAddressInfo,
|
||
IN ULONG TdiBindAddressInfoLength,
|
||
IN PIRP Irp OPTIONAL
|
||
);
|
||
|
||
NTSTATUS
|
||
CxOfflineNetwork(
|
||
CL_NETWORK_ID NetworkId,
|
||
PIRP Irp,
|
||
PIO_STACK_LOCATION IrpSp
|
||
);
|
||
|
||
NTSTATUS
|
||
CxGetNetworkState(
|
||
IN CL_NETWORK_ID NetworkId,
|
||
OUT PCLUSNET_NETWORK_STATE State
|
||
);
|
||
|
||
NTSTATUS
|
||
CxSetNetworkRestriction(
|
||
IN CL_NETWORK_ID NetworkId,
|
||
IN BOOLEAN Restricted,
|
||
IN ULONG NewPriority
|
||
);
|
||
|
||
NTSTATUS
|
||
CxSetNetworkPriority(
|
||
IN CL_NETWORK_ID NetworkId,
|
||
IN ULONG Priority
|
||
);
|
||
|
||
NTSTATUS
|
||
CxGetNetworkPriority(
|
||
IN CL_NETWORK_ID NetworkId,
|
||
OUT PULONG Priority
|
||
);
|
||
|
||
|
||
//
|
||
// Interfaces
|
||
//
|
||
NTSTATUS
|
||
CxRegisterInterface(
|
||
CL_NODE_ID NodeId,
|
||
CL_NETWORK_ID NetworkId,
|
||
ULONG Priority,
|
||
PUWSTR AdapterId,
|
||
ULONG AdapterIdLength,
|
||
ULONG TdiAddressLength,
|
||
PTRANSPORT_ADDRESS TdiAddress,
|
||
PULONG MediaStatus
|
||
);
|
||
|
||
NTSTATUS
|
||
CxDeregisterInterface(
|
||
CL_NODE_ID NodeId,
|
||
CL_NETWORK_ID NetworkId
|
||
);
|
||
|
||
NTSTATUS
|
||
CxSetInterfacePriority(
|
||
IN CL_NODE_ID NodeId,
|
||
IN CL_NETWORK_ID NetworkId,
|
||
IN ULONG Priority
|
||
);
|
||
|
||
NTSTATUS
|
||
CxGetInterfacePriority(
|
||
IN CL_NODE_ID NodeId,
|
||
IN CL_NETWORK_ID NetworkId,
|
||
OUT PULONG InterfacePriority,
|
||
OUT PULONG NetworkPriority
|
||
);
|
||
|
||
NTSTATUS
|
||
CxGetInterfaceState(
|
||
IN CL_NODE_ID NodeId,
|
||
IN CL_NETWORK_ID NetworkId,
|
||
OUT PCLUSNET_INTERFACE_STATE State
|
||
);
|
||
|
||
//
|
||
// Misc. stuff
|
||
//
|
||
NTSTATUS
|
||
CxGetNodeMembershipState(
|
||
IN CL_NODE_ID NodeId,
|
||
OUT PCLUSNET_NODE_STATE State
|
||
);
|
||
|
||
NTSTATUS
|
||
CxSetNodeMembershipState(
|
||
IN CL_NODE_ID NodeId,
|
||
IN CLUSNET_NODE_STATE State
|
||
);
|
||
|
||
NTSTATUS
|
||
CxSetOuterscreen(
|
||
IN ULONG Outerscreen
|
||
);
|
||
|
||
VOID
|
||
CxRegroupFinished(
|
||
IN ULONG NewEpoch
|
||
);
|
||
|
||
NTSTATUS
|
||
CxImportSecurityContext(
|
||
IN CL_NODE_ID NodeId,
|
||
IN PWCHAR PackageName,
|
||
IN ULONG PackageNameSize,
|
||
IN ULONG SignatureSize,
|
||
IN PVOID InboundContext,
|
||
IN PVOID OutboundContext
|
||
);
|
||
|
||
VOID
|
||
CxDeleteSecurityContext(
|
||
IN CL_NODE_ID NodeId
|
||
);
|
||
|
||
//
|
||
// Membership Message Interface
|
||
//
|
||
typedef
|
||
VOID
|
||
(*PCX_SEND_COMPLETE_ROUTINE) (
|
||
IN NTSTATUS Status,
|
||
IN ULONG BytesSent,
|
||
IN PVOID Context,
|
||
IN PVOID Buffer
|
||
);
|
||
|
||
NTSTATUS
|
||
CxSendMembershipMessage(
|
||
IN CL_NODE_ID DestinationNodeId,
|
||
IN PVOID MessageData,
|
||
IN USHORT MessageDataLength,
|
||
IN PCX_SEND_COMPLETE_ROUTINE CompletionRoutine,
|
||
IN PVOID CompletionContext OPTIONAL
|
||
);
|
||
|
||
VOID
|
||
CxSendPoisonPacket(
|
||
IN CL_NODE_ID DestinationNodeId,
|
||
IN PCX_SEND_COMPLETE_ROUTINE CompletionRoutine OPTIONAL,
|
||
IN PVOID CompletionContext OPTIONAL,
|
||
IN PIRP Irp OPTIONAL
|
||
);
|
||
|
||
NTSTATUS
|
||
CxSendHeartBeatMessage(
|
||
IN CL_NODE_ID DestinationNodeId,
|
||
IN ULONG SeqNumber,
|
||
IN ULONG AckNumber,
|
||
IN CL_NETWORK_ID NetworkId
|
||
);
|
||
|
||
|
||
//
|
||
// Top-edge TDI Routines
|
||
//
|
||
NTSTATUS
|
||
CxOpenAddress(
|
||
OUT PCN_FSCONTEXT * CnFsContext,
|
||
IN TRANSPORT_ADDRESS UNALIGNED * TransportAddress,
|
||
IN ULONG TransportAddressLength
|
||
);
|
||
|
||
NTSTATUS
|
||
CxCloseAddress(
|
||
IN PCN_FSCONTEXT CnFsContext
|
||
);
|
||
|
||
NTSTATUS
|
||
CxSetEventHandler(
|
||
IN PIRP Irp,
|
||
IN PIO_STACK_LOCATION IrpSp
|
||
);
|
||
|
||
NTSTATUS
|
||
CxQueryInformation(
|
||
IN PIRP Irp,
|
||
IN PIO_STACK_LOCATION IrpSp
|
||
);
|
||
|
||
NTSTATUS
|
||
CxSendDatagram(
|
||
IN PIRP Irp,
|
||
IN PIO_STACK_LOCATION IrpSp
|
||
);
|
||
|
||
NTSTATUS
|
||
CxReceiveDatagram(
|
||
IN PIRP Irp,
|
||
IN PIO_STACK_LOCATION IrpSp
|
||
);
|
||
|
||
//
|
||
// Test APIs
|
||
//
|
||
#if DBG
|
||
|
||
NTSTATUS
|
||
CxOnlinePendingInterface(
|
||
IN CL_NODE_ID NodeId,
|
||
IN CL_NETWORK_ID NetworkId
|
||
);
|
||
|
||
NTSTATUS
|
||
CxOnlineInterface(
|
||
IN CL_NODE_ID NodeId,
|
||
IN CL_NETWORK_ID NetworkId
|
||
);
|
||
|
||
NTSTATUS
|
||
CxOfflineInterface(
|
||
IN CL_NODE_ID NodeId,
|
||
IN CL_NETWORK_ID NetworkId
|
||
);
|
||
|
||
NTSTATUS
|
||
CxFailInterface(
|
||
IN CL_NODE_ID NodeId,
|
||
IN CL_NETWORK_ID NetworkId
|
||
);
|
||
|
||
#endif // DBG
|
||
|
||
|
||
#endif // ndef _CLUXPORT_INCLUDED
|
||
|
||
|
||
|