|
|
//+-------------------------------------------------------------------------
//
// 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;
|