Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
2.0 KiB

  1. /*
  2. * File: load.h
  3. * Description: This file contains function prototypes for the load
  4. * module packet filtering extensions.
  5. * History: Created by shouse, 1.11.02
  6. */
  7. /* This function retrieves all necessary state from the load module in order to determine whether
  8. a given packet would be accepted by the load module in its current state and why or why not. */
  9. void LoadFilter (ULONG64 pLoad, ULONG dwClientIPAddress, ULONG dwClientPort, ULONG dwServerIPAddress, ULONG dwServerPort, USHORT wProtocol, UCHAR cFlags, BOOL bLimitMap, BOOL bReverse);
  10. /* This function retrieves the appropriate port rule given the server side parameters of the connection. */
  11. ULONG64 LoadPortRuleLookup (ULONG64 pLoad, ULONG dwServerIPAddress, ULONG dwServerPort, BOOL bIsTCP, BOOL * bIsDefault);
  12. /* This function searches for and returns any existing descriptor matching the given IP tuple; otherwise, it returns NULL (0). */
  13. ULONG64 LoadFindDescriptor (ULONG64 pLoad, ULONG index, ULONG dwServerIPAddress, ULONG dwServerPort, ULONG dwClientIPAddress, ULONG dwClientPort, USHORT wProtocol);
  14. /* This function determines whether a given IP tuple matches a given connection descriptor. */
  15. BOOL LoadConnectionMatch (ULONG64 pDescriptor, ULONG dwServerIPAddress, ULONG dwServerPort, ULONG dwClientIPAddress, ULONG dwClientPort, USHORT wProtocol);
  16. /* This function determines whether or not a given NLB instance is configured for BDA teaming and returns the
  17. load module pointer that should be used. */
  18. BOOL AcquireLoad (ULONG64 pContext, PULONG64 pLoad, BOOL * pbRefused);
  19. /* This function is a simple hash based on the IP 4-tuple used to locate state for the connection. */
  20. ULONG LoadSimpleHash (ULONG dwServerIPAddress, ULONG dwServerPort, ULONG dwClientIPAddress, ULONG dwClientPort);
  21. /* This is the conventional NLB hashing algorithm, which ends up invoking a light-weight encryption algorithm to calculate a hash. */
  22. ULONG LoadComplexHash (ULONG dwServerIPAddress, ULONG dwServerPort, ULONG dwClientIPAddress, ULONG dwClientPort, ULONG dwAffinity, BOOL bReverse, BOOL bLimitMap);