216 lines
4.3 KiB
C
216 lines
4.3 KiB
C
//+-------------------------------------------------------------------------
|
||
//
|
||
// 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;
|
||
|