windows-nt/Source/XPSP1/NT/base/fs/srv/srvconst.h
2020-09-26 16:20:57 +08:00

168 lines
4.8 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
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_