168 lines
4.8 KiB
C
168 lines
4.8 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1989 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
srvconst.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module defines manifest constants for the LAN Manager server.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Chuck Lenzmeier (chuckl) 22-Sep-1989
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#ifndef _SRVCONST_
|
|||
|
#define _SRVCONST_
|
|||
|
|
|||
|
// !!! #include <lmcons.h>
|
|||
|
|
|||
|
|
|||
|
// !!! The following constant should be gotten from netcons.h
|
|||
|
#define COMPUTER_NAME_LENGTH 15
|
|||
|
|
|||
|
//
|
|||
|
// This is the size of the data for doing oplock breaks. Used to compute
|
|||
|
// round trip propagation delays.
|
|||
|
//
|
|||
|
|
|||
|
#define SRV_PROPAGATION_DELAY_SIZE (ULONG) \
|
|||
|
(sizeof(SMB_HEADER) + sizeof(REQ_LOCKING_ANDX) + \
|
|||
|
sizeof(SMB_HEADER) + sizeof(RESP_LOCKING_ANDX) + 100)
|
|||
|
|
|||
|
//
|
|||
|
// The number of slots in the error log record array, must be a power
|
|||
|
// of 2.
|
|||
|
//
|
|||
|
|
|||
|
#define NUMBER_OF_SLOTS 8
|
|||
|
|
|||
|
//
|
|||
|
// The number of entries in the SrvMfcbHashTable. Arbitrary.
|
|||
|
//
|
|||
|
#define NMFCB_HASH_TABLE 131
|
|||
|
|
|||
|
//
|
|||
|
// The number of resources which guard entries in SrvMfcbHashTable. Only makes
|
|||
|
// sense for this number to be <= NMFCB_HASH_TABLE.
|
|||
|
//
|
|||
|
#define NMFCB_HASH_TABLE_LOCKS 10 // arbitrary
|
|||
|
|
|||
|
//
|
|||
|
// The number of entries in the SrvShareHashTable. Arbitrary
|
|||
|
//
|
|||
|
#define NSHARE_HASH_TABLE 17
|
|||
|
|
|||
|
//
|
|||
|
// The number of pieces of pool we'll hang onto in a LOOK_ASIDE_LIST
|
|||
|
// after deallocation for quick re-allocation. Per processor.
|
|||
|
// Involves a linear search...
|
|||
|
//
|
|||
|
#define LOOK_ASIDE_MAX_ELEMENTS 4
|
|||
|
|
|||
|
//
|
|||
|
// Two look aside lists for quick pool allocation and deallocation are
|
|||
|
// kept, and a POOL_HEADER goes on one list or the other depending on
|
|||
|
// the size of the allocated block. This is to reduce memory wastage.
|
|||
|
// LOOK_ASIDE_SWITCHOVER is the maximum block size for a memory chunk
|
|||
|
// to end up on the SmallFreeList in the LOOK_ASIDE_LIST
|
|||
|
//
|
|||
|
#define LOOK_ASIDE_SWITCHOVER 32
|
|||
|
|
|||
|
//
|
|||
|
// We have to multiply the ea size we get back from the system to get
|
|||
|
// the buffer size we need to query the ea. This is because the returned
|
|||
|
// ea size is the os/2 ea size.
|
|||
|
//
|
|||
|
#define EA_SIZE_FUDGE_FACTOR 2
|
|||
|
|
|||
|
#define ENDPOINT_LOCK_COUNT 4
|
|||
|
#define ENDPOINT_LOCK_MASK (ENDPOINT_LOCK_COUNT-1)
|
|||
|
|
|||
|
//
|
|||
|
// The server keeps a table of NTSTATUS codes that it will avoid putting in
|
|||
|
// the error log. This is the number of codes we can hold
|
|||
|
//
|
|||
|
#define SRVMAXERRLOGIGNORE 50
|
|||
|
|
|||
|
//
|
|||
|
// The following constants are copied from net\inc\apinums.h
|
|||
|
// This is a list of apis and apinumbers that are callable
|
|||
|
// on the null session.
|
|||
|
//
|
|||
|
#define API_WUserGetGroups 59
|
|||
|
#define API_WUserPasswordSet2 115
|
|||
|
#define API_NetServerEnum2 104
|
|||
|
#define API_WNetServerReqChallenge 126
|
|||
|
#define API_WNetServerAuthenticate 127
|
|||
|
#define API_WNetServerPasswordSet 128
|
|||
|
#define API_WNetAccountDeltas 129
|
|||
|
#define API_WNetAccountSync 130
|
|||
|
#define API_WWkstaUserLogoff 133
|
|||
|
#define API_WNetWriteUpdateLog 208
|
|||
|
#define API_WNetAccountUpdate 209
|
|||
|
#define API_WNetAccountConfirmUpdate 210
|
|||
|
#define API_SamOEMChgPasswordUser2_P 214
|
|||
|
#define API_NetServerEnum3 215
|
|||
|
|
|||
|
//
|
|||
|
// This is the presumed cache line size for the processor
|
|||
|
//
|
|||
|
#define CACHE_LINE_SIZE 32
|
|||
|
|
|||
|
//
|
|||
|
// This is the number of ULONGS in a cache line
|
|||
|
//
|
|||
|
#define ULONGS_IN_CACHE (CACHE_LINE_SIZE / sizeof( ULONG ))
|
|||
|
|
|||
|
//
|
|||
|
// This is the number of samples used to compute the average WORK_QUEUE depth.
|
|||
|
// Must be a power of 2
|
|||
|
//
|
|||
|
#define QUEUE_SAMPLES 8
|
|||
|
|
|||
|
//
|
|||
|
// This is Log2( QUEUE_SAMPLES )
|
|||
|
//
|
|||
|
#define LOG2_QUEUE_SAMPLES 3
|
|||
|
|
|||
|
//
|
|||
|
// If we have an IPX client, we want to drop every few retries of the same SMB
|
|||
|
// by the client to decrease the server load. WIN95 backs off its requests
|
|||
|
// when it gets ERR_WORKING, but wfw does not. So, there's no value (from the
|
|||
|
// server's perspective) in responding very often to the wfw client. The WfW
|
|||
|
// client retries approx every 300mS, and must receive a response in approx 9
|
|||
|
// seconds. Therefore, we choose 9 drops as approx 3 seconds. This will allow two
|
|||
|
// of our responses to be dropped and will allow enough time for the client to
|
|||
|
// try a third time.
|
|||
|
//
|
|||
|
#define MIN_IPXDROPDUP 2
|
|||
|
#define MAX_IPXDROPDUP 9
|
|||
|
|
|||
|
//
|
|||
|
// The number of configuration work items. This roughly governs the number of kernel
|
|||
|
// worker threads which will be occupied processing configuration irps
|
|||
|
//
|
|||
|
#define MAX_CONFIG_WORK_ITEMS 2
|
|||
|
|
|||
|
//
|
|||
|
// The maximum size of the buffer associated with a TRANSACTION
|
|||
|
//
|
|||
|
#define MAX_TRANSACTION_TAIL_SIZE 65*1024
|
|||
|
|
|||
|
//
|
|||
|
// The number of times we will continue doing paged writes with WriteThrough
|
|||
|
// set before we try and go back to cached writes. This is used in situations
|
|||
|
// where the cache manager has hit the cache throttle to prevent deadlocks
|
|||
|
//
|
|||
|
#define MAX_FORCED_WRITE_THROUGH 64
|
|||
|
|
|||
|
#endif // ndef _SRVCONST_
|
|||
|
|