100 lines
2.4 KiB
C
100 lines
2.4 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1991 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
bowelect.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This module
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Larry Osterman (larryo) 6-May-1991
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
6-May-1991 larryo
|
||
|
|
||
|
Created
|
||
|
|
||
|
--*/
|
||
|
#ifndef _BOWELECT_
|
||
|
#define _BOWELECT_
|
||
|
|
||
|
//
|
||
|
// Timer values to respond to election requests.
|
||
|
//
|
||
|
|
||
|
#define MASTER_ELECTION_DELAY 100 // Master waits this long.
|
||
|
#define BACKUP_ELECTION_DELAY_MIN 200 // Backup waits at least this long
|
||
|
#define BACKUP_ELECTION_DELAY_MAX 600 // but no longer than this.
|
||
|
#define ELECTION_DELAY_MIN 800 // Others wait at least this long
|
||
|
#define ELECTION_DELAY_MAX 3000 // but no longer than this.
|
||
|
#define ELECTION_RESPONSE_MIN 200 // Election response delay.
|
||
|
#define ELECTION_RESPONSE_MAX 900 // Max electionresponse delay
|
||
|
|
||
|
#define ELECTION_RESEND_DELAY 1000 // Resend election at this interval
|
||
|
|
||
|
#define ELECTION_COUNT 4 // We must win election this many times.
|
||
|
#define ELECTION_MAX 30 // Don't send more than 30 election
|
||
|
// responses in an election
|
||
|
#define ELECTION_EXEMPT_TIME (ELECTION_DELAY_MAX + (ELECTION_RESEND_DELAY*ELECTION_COUNT)*2)
|
||
|
|
||
|
#define FIND_MASTER_WAIT (ELECTION_DELAY_MAX + ELECTION_RESEND_DELAY*(ELECTION_COUNT+2))
|
||
|
#define FIND_MASTER_DELAY 1500 // Retry find master delay.
|
||
|
#define FIND_MASTER_COUNT 6 // Number of times to retry FM
|
||
|
|
||
|
|
||
|
#define TRANSPORT_BIND_TIME 3*1000 // Number of milliseconds to bind to transport.
|
||
|
|
||
|
//
|
||
|
// The reasonable amount of time that it would take for an election.
|
||
|
//
|
||
|
|
||
|
#define ELECTION_TIME ((ELECTION_DELAY_MAX * ELECTION_COUNT) + TRANSPORT_BIND_TIME)
|
||
|
|
||
|
DATAGRAM_HANDLER(
|
||
|
BowserHandleElection
|
||
|
);
|
||
|
|
||
|
NTSTATUS
|
||
|
BowserSendElection(
|
||
|
IN PUNICODE_STRING NameToSend,
|
||
|
IN DGRECEIVER_NAME_TYPE NameType,
|
||
|
IN PTRANSPORT Transport,
|
||
|
IN BOOLEAN SendActualBrowserInfo
|
||
|
);
|
||
|
|
||
|
NTSTATUS
|
||
|
GetMasterName (
|
||
|
IN PIRP Irp,
|
||
|
IN BOOLEAN Wait,
|
||
|
IN BOOLEAN InFsd,
|
||
|
IN PLMDR_REQUEST_PACKET InputBuffer,
|
||
|
IN ULONG InputBufferLength
|
||
|
);
|
||
|
|
||
|
//NTSTATUS
|
||
|
//BowserBackupFindMaster(
|
||
|
// IN PTRANSPORT Transport,
|
||
|
// IN PREQUEST_ELECTION_1 ElectionResponse,
|
||
|
// IN ULONG BytesAvailable
|
||
|
// );
|
||
|
|
||
|
NTSTATUS
|
||
|
BowserFindMaster(
|
||
|
IN PTRANSPORT Transport
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
BowserLoseElection(
|
||
|
IN PTRANSPORT Transport
|
||
|
);
|
||
|
|
||
|
#endif // _BOWELECT_
|
||
|
|
||
|
|