windows-nt/Source/XPSP1/NT/com/rpc/perf/raw/inc/nb.h

216 lines
4.3 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1994 - 1999
//
// File: nb.h
//
//--------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////
//
// Filename: nb.h
//
// Description: This file contains definitions for NetBios routines
// for use with IPC raw network performance tests.
//
// Authors: Scott Holden (Translator from NT API to win32 API)
// Mahesh Keni (Mahesh wrote this application using mostly
// NT native API calls)
//
/////////////////////////////////////////////////////////////////////////
// 1234567890123456
#define PERF_NETBIOS "perftest123456 "
#define CLINAME "perfCli"
#define ALL_CLIENTS "* "
#define SPACES " "
#define ClearNCB( PNCB ) { \
RtlZeroMemory( PNCB , sizeof (NCB) ); \
RtlMoveMemory( (PNCB)->ncb_name, SPACES, sizeof(SPACES)-1 );\
RtlMoveMemory( (PNCB)->ncb_callname, SPACES, sizeof(SPACES)-1 );\
}
/**********************************************************************/
// Local Function prototypes
/**********************************************************************/
UCHAR
NetBIOS_AddName(
IN PCHAR LocalName,
IN UCHAR LanaNumber,
OUT PUCHAR NameNumber
);
UCHAR
NetBIOS_DelName(
IN PCHAR LocalName,
IN UCHAR LanaNumber
);
UCHAR
NetBIOS_Reset(
IN UCHAR LanaNumber
);
UCHAR
NetBIOS_Call(
IN USHORT CIndex, // Client Index
IN PCHAR LocalName,
IN PCHAR RemoteName
);
UCHAR
NetBIOS_Listen(
IN USHORT TIndex, // Client Index
IN PCHAR LocalName,
IN PCHAR RemoteName,
IN UCHAR NameNumber
);
UCHAR
NetBIOS_Receive(
IN USHORT TIndex,
IN PUCHAR RecvBuffer,
IN USHORT RecvLen
);
UCHAR
NetBIOS_Send(
IN USHORT TIndex,
IN PUCHAR SendBuffer,
IN USHORT SendLen
);
UCHAR
NetBIOS_HangUP(
IN USHORT TIndex
);
UCHAR
NetBIOS_RecvSend(
IN USHORT TIndex,
IN PUCHAR SendBuffer,
IN USHORT SendLen,
IN PUCHAR RecvBuffer,
IN USHORT RecvLen
);
UCHAR
NetBIOS_SPReceive(
IN USHORT TIndex,
IN NCB * PRecvNCB,
IN USHORT Global, // global= 1 or local = 0
IN PUCHAR RecvBuffer,
IN USHORT RecvLen
);
NTSTATUS
NB_Initialize(
IN USHORT NClients,
IN PCHAR ServerName,
IN USHORT SrvCli
);
NTSTATUS
NB_PerClientInit(
IN USHORT CIndex, // client index
IN USHORT SrvCli
);
NTSTATUS
NB_Wait_For_Client(
IN USHORT CIndex
);
NTSTATUS
NB_Disconnect_Client(
IN USHORT CIndex
);
NTSTATUS
NB_Connect_To_Server(
IN USHORT CIndex
);
NTSTATUS
NB_Allocate_Memory(
IN USHORT CIndex
);
NTSTATUS
NB_Deallocate_Memory(
IN USHORT CIndex
);
NTSTATUS
NB_Disconnect_From_Server(
IN USHORT CIndex
);
NTSTATUS
NB_DoHandshake(
IN USHORT CIndex, // client index and namedpipe instance number
IN USHORT SrvCli // if it's a server or client
);
NTSTATUS
NB_ReadFromIPC(
IN USHORT CIndex, // client index and namedpipe instance number
IN OUT PULONG pReadDone,
IN USHORT SrvCli // if it's a server or client
);
NTSTATUS
NB_WriteToIPC(
IN USHORT CIndex, // client index and namedpipe instance number
IN OUT PULONG pWriteDone,
IN USHORT SrvCli // if it's a server or client
);
NTSTATUS
NB_XactIO(
IN USHORT CIndex, // client index and namedpipe instance number
IN OUT PULONG pReadDone,
IN OUT PULONG pWriteDone,
IN USHORT SrvCli, // if it's a server or client
IN BOOLEAN FirstIter
);
NTSTATUS
NB_Cleanup(
VOID
);
NTSTATUS
NB_ThreadCleanUp(
IN USHORT CIndex
);
/**********************************************************************/
// External variables
/**********************************************************************/
// For NetBIOS only
extern USHORT LanaCount;
extern USHORT LanaBase;
extern UCHAR NameNumber;
extern CHAR LocalName[NCBNAMSZ];
extern CHAR RemoteName[NCBNAMSZ];
extern struct client Clients[MAXCLIENTS]; // all the client data
extern USHORT NClients;
extern USHORT MachineNumber;