summaryrefslogtreecommitdiffstats
path: root/private/ntos/afd/afddata.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/ntos/afd/afddata.h')
-rw-r--r--private/ntos/afd/afddata.h201
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_