windows-nt/Source/XPSP1/NT/net/wins/server/inc/nmschl.h
2020-09-26 16:20:57 +08:00

141 lines
2.6 KiB
C

#ifndef _NMSCHL_
#define _NMSCHL_
#ifdef __cplusplus
extern "C" {
#endif
/*++
Copyright (c) 1989 Microsoft Corporation
Module Name:
Nmschl.h
Abstract:
This is the header file for interfacing with the Name Challenge
component of WINS
Functions:
Portability:
This header is portable.
Author:
Pradeep Bahl (PradeepB) Feb-1993
Revision History:
Modification Date Person Description of Modification
------------------ ------- ---------------------------
--*/
/*
includes
*/
#include "wins.h"
#include "comm.h"
#include "nmsdb.h"
/*
defines
*/
#define NMSCHL_INIT_BUFF_HEAP_SIZE 1000 //1000 bytes
/*
macros
*/
//
// The maximum number of challenges that can be initiated at any one time
// 500 is a very genrous number. We might want to make it smaller.
//
// used by QueRemoveChlReqWrkItm function in queue.c
//
#define NMSCHL_MAX_CHL_REQ_AT_ONE_TIME 500
/*
externs
*/
extern HANDLE NmsChlHeapHdl; //Heap for name challenge work items
extern HANDLE NmsChlReqQueEvtHdl;
extern HANDLE NmsChlRspQueEvtHdl;
extern CRITICAL_SECTION NmsChlReqCrtSec;
extern CRITICAL_SECTION NmsChlRspCrtSec;
#ifdef WINSDBG
extern DWORD NmsChlNoOfReqNbt;
extern DWORD NmsChlNoOfReqRpl;
extern DWORD NmsChlNoNoRsp;
extern DWORD NmsChlNoInvRsp;
extern DWORD NmsChlNoRspDropped;
extern DWORD NmsChlNoReqDequeued;
extern DWORD NmsChlNoRspDequeued;
extern DWORD NmsChlNoReqAtHdOfList;
#endif
/*
typedef definitions
*/
//
// NMSCHL_CMD_TYP_E -- Enumerator for indicating to the challenge manager
// what action it needs to take.
//
typedef enum _NMSCHL_CMD_TYP_E {
NMSCHL_E_CHL = 0, //challenge the node. If the
//challenge fails, send a negative
//name reg. response to the registrant,
//else send a positive response
NMSCHL_E_CHL_N_REL,
NMSCHL_E_CHL_N_REL_N_INF,
NMSCHL_E_REL, //ask the node to release the
//name and then update db. Used by
//the RPL PULL thread
NMSCHL_E_REL_N_INF, //ask the node to release the name. Tell //remote WINS to update the version number
NMSCHL_E_REL_ONLY //ask node to release name, no update db
} NMSCHL_CMD_TYP_E, *PNMSCHL_CMD_TYP_E;
/*
* function declarations
*/
STATUS
NmsChlInit(
VOID
);
extern
STATUS
NmsChlHdlNamReg(
NMSCHL_CMD_TYP_E CmdTyp_e,
WINS_CLIENT_E Client_e,
PCOMM_HDL_T pDlgHdl,
MSG_T pMsg,
MSG_LEN_T MsgLen,
DWORD QuesNamSecLen,
PNMSDB_ROW_INFO_T pNodeToReg,
PNMSDB_STAT_INFO_T pNodeInCnf,
// PCOMM_ADD_T pAddOfNodeInCnf,
PCOMM_ADD_T pAddOfRemWins
);
#ifdef __cplusplus
}
#endif
#endif