diff options
Diffstat (limited to 'private/ntos/afd/afddata.h')
-rw-r--r-- | private/ntos/afd/afddata.h | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/private/ntos/afd/afddata.h b/private/ntos/afd/afddata.h new file mode 100644 index 000000000..fcb3e3cc0 --- /dev/null +++ b/private/ntos/afd/afddata.h @@ -0,0 +1,201 @@ +/*++ + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + init.c + +Abstract: + + This module declares global data for AFD. + +Author: + + David Treadwell (davidtr) 21-Feb-1992 + +Revision History: + +--*/ + +#ifndef _AFDDATA_ +#define _AFDDATA_ + +extern PDEVICE_OBJECT AfdDeviceObject; + +extern KSPIN_LOCK AfdSpinLock; + +extern PERESOURCE AfdResource; +extern LIST_ENTRY AfdEndpointListHead; +extern LIST_ENTRY AfdDisconnectListHead; +extern LIST_ENTRY AfdPollListHead; +extern LIST_ENTRY AfdTransportInfoListHead; +extern LIST_ENTRY AfdConstrainedEndpointListHead; + +extern PKPROCESS AfdSystemProcess; +extern FAST_IO_DISPATCH AfdFastIoDispatch; + +// +// Global lookaside lists. These must always be in nonpaged pool, +// even when the driver is paged out. +// + +PAFD_LOOKASIDE_LISTS AfdLookasideLists; + +// +// Globals for dealing with AFD's executive worker thread. +// + +extern KSPIN_LOCK AfdWorkQueueSpinLock; +extern LIST_ENTRY AfdWorkQueueListHead; +extern BOOLEAN AfdWorkThreadRunning; +extern WORK_QUEUE_ITEM AfdWorkQueueItem; + +// +// Globals to track the buffers used by AFD. +// + +extern ULONG AfdLargeBufferListDepth; +#define AFD_SM_DEFAULT_LARGE_LIST_DEPTH 0 +#define AFD_MM_DEFAULT_LARGE_LIST_DEPTH 2 +#define AFD_LM_DEFAULT_LARGE_LIST_DEPTH 10 + +extern ULONG AfdMediumBufferListDepth; +#define AFD_SM_DEFAULT_MEDIUM_LIST_DEPTH 4 +#define AFD_MM_DEFAULT_MEDIUM_LIST_DEPTH 8 +#define AFD_LM_DEFAULT_MEDIUM_LIST_DEPTH 24 + +extern ULONG AfdSmallBufferListDepth; +#define AFD_SM_DEFAULT_SMALL_LIST_DEPTH 8 +#define AFD_MM_DEFAULT_SMALL_LIST_DEPTH 16 +#define AFD_LM_DEFAULT_SMALL_LIST_DEPTH 32 + +extern CLONG AfdLargeBufferSize; +// default value is AfdBufferLengthForOnePage + +extern CLONG AfdMediumBufferSize; +#define AFD_DEFAULT_MEDIUM_BUFFER_SIZE 1504 + +extern CLONG AfdSmallBufferSize; +#define AFD_DEFAULT_SMALL_BUFFER_SIZE 128 + +extern CLONG AfdStandardAddressLength; +#define AFD_DEFAULT_STD_ADDRESS_LENGTH sizeof(TA_IP_ADDRESS) + +extern ULONG AfdCacheLineSize; +extern CLONG AfdBufferLengthForOnePage; + +// +// Globals for tuning TransmitFile(). +// + +extern LIST_ENTRY AfdQueuedTransmitFileListHead; +extern ULONG AfdActiveTransmitFileCount; +extern ULONG AfdMaxActiveTransmitFileCount; +#define AFD_DEFAULT_MAX_ACTIVE_TRANSMIT_FILE_COUNT 2 + +// +// Various pieces of configuration information, with default values. +// + +extern CCHAR AfdIrpStackSize; +#define AFD_DEFAULT_IRP_STACK_SIZE 4 + +extern CCHAR AfdPriorityBoost; +#define AFD_DEFAULT_PRIORITY_BOOST 2 + +extern ULONG AfdFastSendDatagramThreshold; +#define AFD_FAST_SEND_DATAGRAM_THRESHOLD 1024 + +extern PVOID AfdDiscardableCodeHandle; +extern BOOLEAN AfdLoaded; + +extern CLONG AfdReceiveWindowSize; +#define AFD_LM_DEFAULT_RECEIVE_WINDOW 8192 +#define AFD_MM_DEFAULT_RECEIVE_WINDOW 8192 +#define AFD_SM_DEFAULT_RECEIVE_WINDOW 4096 + +extern CLONG AfdSendWindowSize; +#define AFD_LM_DEFAULT_SEND_WINDOW 8192 +#define AFD_MM_DEFAULT_SEND_WINDOW 8192 +#define AFD_SM_DEFAULT_SEND_WINDOW 4096 + +extern CLONG AfdBufferMultiplier; +#define AFD_DEFAULT_BUFFER_MULTIPLIER 4 + +extern CLONG AfdTransmitIoLength; +#define AFD_LM_DEFAULT_TRANSMIT_IO_LENGTH 65536 +#define AFD_MM_DEFAULT_TRANSMIT_IO_LENGTH (PAGE_SIZE*2) +#define AFD_SM_DEFAULT_TRANSMIT_IO_LENGTH PAGE_SIZE + +extern CLONG AfdMaxFastTransmit; +#define AFD_DEFAULT_MAX_FAST_TRANSMIT 65536 +extern CLONG AfdMaxFastCopyTransmit; +#define AFD_DEFAULT_MAX_FAST_COPY_TRANSMIT 128 + +extern ULONG AfdEndpointsOpened; +extern ULONG AfdEndpointsCleanedUp; +extern ULONG AfdEndpointsClosed; + +extern BOOLEAN AfdIgnorePushBitOnReceives; + +extern BOOLEAN AfdEnableDynamicBacklog; +#define AFD_DEFAULT_ENABLE_DYNAMIC_BACKLOG FALSE + +extern LONG AfdMinimumDynamicBacklog; +#define AFD_DEFAULT_MINIMUM_DYNAMIC_BACKLOG 0 + +extern LONG AfdMaximumDynamicBacklog; +#define AFD_DEFAULT_MAXIMUM_DYNAMIC_BACKLOG 0 + +extern LONG AfdDynamicBacklogGrowthDelta; +#define AFD_DEFAULT_DYNAMIC_BACKLOG_GROWTH_DELTA 0 + +extern BOOLEAN AfdDisableRawSecurity; + +#if AFD_PERF_DBG + +extern CLONG AfdFullReceiveIndications; +extern CLONG AfdPartialReceiveIndications; + +extern CLONG AfdFullReceiveDatagramIndications; +extern CLONG AfdPartialReceiveDatagramIndications; + +extern CLONG AfdFastPollsSucceeded; +extern CLONG AfdFastPollsFailed; + +extern CLONG AfdFastSendsSucceeded; +extern CLONG AfdFastSendsFailed; +extern CLONG AfdFastReceivesSucceeded; +extern CLONG AfdFastReceivesFailed; + +extern CLONG AfdFastSendDatagramsSucceeded; +extern CLONG AfdFastSendDatagramsFailed; +extern CLONG AfdFastReceiveDatagramsSucceeded; +extern CLONG AfdFastReceiveDatagramsFailed; + +extern BOOLEAN AfdDisableFastIo; +extern BOOLEAN AfdDisableConnectionReuse; + +#endif // if AFD_PERF_DBG + +#if AFD_KEEP_STATS + +extern AFD_QUOTA_STATS AfdQuotaStats; +extern AFD_HANDLE_STATS AfdHandleStats; +extern AFD_QUEUE_STATS AfdQueueStats; +extern AFD_CONNECTION_STATS AfdConnectionStats; + +#endif // if AFD_KEEP_STATS + +#if DBG +extern BOOLEAN AfdUsePrivateAssert; +#endif + +#if ENABLE_ABORT_TIMER_HACK +extern LARGE_INTEGER AfdAbortTimerTimeout; +#endif // ENABLE_ABORT_TIMER_HACK + +extern QOS AfdDefaultQos; + +#endif // ndef _AFDDATA_ |