NETTYPES.H
上传用户:he75757
上传日期:2007-01-04
资源大小:36k
文件大小:3k
源码类别:

TCP/IP协议栈

开发平台:

Visual C++

  1. /*++
  2. Copyright (c) 1989  Microsoft Corporation
  3. Module Name:
  4.     nettypes.h
  5. Abstract:
  6.     This header file contains type definitions for the NT TDI, NDI,
  7.     DDI, and PDI interfaces which are not specific to a single interface.
  8. Author:
  9.     Steve Jones (stevej) 26-Oct-1989
  10. Revision History:
  11. --*/
  12. #ifndef _NETTYPES_
  13. #define _NETTYPES_
  14. //
  15. // The following basic type is used to provide extensibility in request
  16. // and response packets.  The OFFSET type is used to contain a value which
  17. // is interpreted as a relative address consisting of a number of bytes
  18. // from the beginning of the immediate parent structure.
  19. //
  20. typedef ULONG OFFSET;
  21. //
  22. // The following basic type is used throughout all the layers to pass a
  23. // string through an I/O interface which does not allow embedded pointers.
  24. // To allocate a FLAT_STRING, one must make room for the correct number of
  25. // buffer bytes in the allocation.
  26. //
  27. typedef struct _FLAT_STRING {
  28.     SHORT MaximumLength;            // total size of string buffer.
  29.     SHORT Length;                   // number of bytes represented in string.
  30.     char Buffer [1];                // the buffer itself follows this struct.
  31. } FLAT_STRING, *PFLAT_STRING;
  32. //
  33. // Basic type used to represent a network name, typically as a component of
  34. // a transport address structure through the TDI.  This type is also passed
  35. // through the NDI interface.  This type is declared as a structure so that
  36. // it can be extended easily without modifying applications, even though it
  37. // currently only has one element.
  38. //
  39. //
  40. typedef struct _NETWORK_NAME {
  41.     FLAT_STRING Name;                   // network name in FLAT_STRING format.
  42. } NETWORK_NAME, *PNETWORK_NAME;
  43. //
  44. // Basic type used to represent an address at the hardware level of the
  45. // network.  Hardware addresses are abstract types which are mapped to
  46. // adapter addresses by the physical provider.  See the Physical Driver
  47. // Interface specification for details on how this is accomplished.
  48. //
  49. #define HARDWARE_ADDRESS_LENGTH     6   // number of octets in a hardware address.
  50. typedef struct _HARDWARE_ADDRESS {
  51.     UCHAR Address [HARDWARE_ADDRESS_LENGTH];
  52. } HARDWARE_ADDRESS, *PHARDWARE_ADDRESS;
  53. //
  54. // Network management variable types used by all interface levels.
  55. //
  56. #define NETMAN_VARTYPE_ULONG            0       // type is a ULONG.
  57. #define NETMAN_VARTYPE_HARDWARE_ADDRESS 1       // type is a HARDWARE_ADDRESS.
  58. #define NETMAN_VARTYPE_STRING           2       // type is a FLAT_STRING.
  59. #endif // _NETTYPES_