summaryrefslogtreecommitdiffstats
path: root/private/ntos/afd/registry.txt
diff options
context:
space:
mode:
Diffstat (limited to 'private/ntos/afd/registry.txt')
-rw-r--r--private/ntos/afd/registry.txt158
1 files changed, 158 insertions, 0 deletions
diff --git a/private/ntos/afd/registry.txt b/private/ntos/afd/registry.txt
new file mode 100644
index 000000000..614d113c8
--- /dev/null
+++ b/private/ntos/afd/registry.txt
@@ -0,0 +1,158 @@
+note: for items where i give three default values, the first is for
+small machines (<12.5 MB), the second is medium machines (12.5 to 20
+MB) and the third is for large machines (> 20 MB).
+
+**** AFD is the driver which handles winsock. the following values
+may be set under Services\Afd\Parameters:
+
+LargeBufferSize, REG_DWORD, default = 3876
+the size in bytes of large buffers used by AFD. smaller values use
+less memory, larger values can improve performance.
+
+LargBufferListDepth, REG_DWORD, default = 0/2/10
+the maximum count of large buffers that AFD keeps in reserve. larger
+numbers give better performance at the cost of physical memory.
+
+MediumBufferSize, REG_DWORD, default = 1504
+size of medium buffers.
+
+MediumBufferListDepth, REG_DWORD, default = 4/8/16
+max count of medium buffers in reserve.
+
+SmallBufferSize, REG_DWORD, default = 128
+
+SmallBufferListDepth, REG_DWORD, default = 8/16/16
+
+FastSendDatagramThreshold, REG_DWORD, default = 1024
+datagrams smaller than this get bufferred on send, larger ones are
+pended. the default value was found by testing to be the best
+overall value for performance. it is unlikely that anyone would want
+to change this.
+
+StandardAddressLength, REG_DWORD, default = 24
+the length of TDI addresses typically used for the machine. if the
+customer has a transport protocol like TP4 which uses very long
+addresses, then increasing this value will result in a slight
+performance improvement.
+
+DefaultReceiveWindow, REG_DWORD, default = 8192
+the number of receive bytes AFD will buffer on a connection before
+imposing flow control. for some applications, a larger value here
+will give slightly better performance at the expense of increases
+resource utilization. note that applications can modify this value
+on a per-socket basis with the SO_RCVBUF socket option.
+
+DefaultSendWindow, REG_DWORD, default = 8192
+as with DefaultReceiveWindow, but for the send side of connections.
+
+BufferMultiplier, REG_DWORD, default = 512
+DefaultReceiveWindow and DefaultSendWindow get divided by this value
+to determine how many massages can be sent/received before flow
+control is imposed.
+
+PriorityBoost, REG_DWORD, default = 2
+the priority boost AFD gives to a thread when it completes I/O for
+that thread. if a multithreaded application experiences starvation
+of some threads, reducing this value may remedy the problem.
+
+IrpStackSize, REG_DWORD, default = 4
+the count of IRP stack locations used by default for AFD. users
+shouldn't need to change this.
+
+TransmitIoLength, REG_DWORD, default = PAGE_SIZE,PAGE_SIZE*2,65536
+the default size for I/O (reads and sends) performed by TransmitFile().
+Note that for the NT workstation product, the default I/O size is
+exactly one page.
+
+IgnorePushBitOnReceives, REG_DWORD, default = 0
+If this value is zero (the default) and the TCP push bit is set on a
+receive indication, then a larger then necessary buffer is passed down
+to the TCP stack. This often gives a performance boost on receives.
+If this value is non-zero, then the TCP push bit is ignored (this was
+the behaviour of NT 3.1).
+
+MaxActiveTransmitFileCount, REG_DWORD, default = 0
+This value controls the maximum number of simultaneous TransmitFile
+operations allowed. This registry value is only honored in the NT
+Server product; NT Workstations always use a hardcoded (not configurable)
+value.
+
+MaxFastTransmit, REG_DWORD, default = 65536
+This is the threshold count, in bytes, for the TransmitFile fast path to
+fail. If the caller requests a send larger than this, it will never
+go through the TransmitFile fast path.
+
+MaxFastCopyTransmit, REG_DWORD, default = 3876
+If a TransmitFile caller requests a send smaller than this size, the
+operation is performed by doing a data copy from the file data to a system
+buffer. This is slightly faster than direct I/O for small files, but for
+larger files the copy overhead overwhelms the inherent efficiency of the
+copy operation.
+
+**** the following keys are used by the RNR (service resolution and
+registration) apis in winsock. these are all just "pointers" to
+other stuff in the registry. users should never need to change
+these.
+
+under CurrentControlSet\Control\ServiceProvider\Order, values:
+
+ExcludedProviders: a REG_MULTI_SZ that contains decimal values
+corresponding to name space providers that should be excluded.
+default is an empty set. some name space provider decimal values
+include:
+
+#define NS_SAP (1)
+#define NS_NDS (2)
+
+#define NS_TCPIP_LOCAL (10)
+#define NS_TCPIP_HOSTS (11)
+#define NS_DNS (12)
+#define NS_NETBT (13)
+#define NS_WINS (14)
+
+#define NS_NBP (20)
+
+#define NS_MS (30)
+#define NS_STDA (31)
+#define NS_CAIRO (32)
+
+#define NS_X500 (40)
+#define NS_NIS (41)
+
+for example, setting ExcludedProviders to "1" "12" means that
+GetAddressByName() will not attempt to use SAP or DNS when doing
+typical name resolution operations.
+
+ProviderOrder: a REG_MULTI_SZ that contains strings corresponding to
+keys under CurrentControlSet\Services. these keys must have a
+ServiceProvider subkey which provides information about the name
+space provider, especially Class and ProviderPath values.
+
+**** the following values are relevent to TCP/IP name resolution
+(gethostbyname()) and the GetAddressByName() API. under
+Services\Tcpip\ServiceProvider:
+
+Class, REG_DWORD, default = 8. should never change--this indicates
+that TCPIP is a name service provider.
+
+DnsPriority, REG_DWORD, default = 0x7D0
+HostsPriority, REG_DWORD, default = 0x1F4
+LocalPriority, REG_DWORD, default = 0x1F3
+NetbtPriority, REG_DWORD, default = 0x7D1
+these priority values are used to determine the order of name
+resolutions. low priority mechanisms are used first, so the default
+order is local, hosts, dns, netbt. if someone wants a different name
+resolution order, readjust the priority values as needed. note that
+values under 1000 decimal are considered "fast" name resolution
+providers, so putting network-based resolution mechanisms like dns
+and netbt at values under 1000 may have weird effects.
+
+Name, REG_SZ, default = "TCP/IP"
+no need to change.
+
+ProviderPath, REG_SZ, default = "%SystemRoot%\System32\wsock32.dll"
+points to the dll that does tcpip name resolution. there is no need
+to change this.
+
+**** there are other keys associated with netware name resolution.
+chuck chan will comment on their names and meaning.