82 lines
2.5 KiB
C
82 lines
2.5 KiB
C
/*++
|
|
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
nettypes.h
|
|
|
|
Abstract:
|
|
|
|
This header file contains type definitions for the NT TDI, NDI,
|
|
DDI, and PDI interfaces which are not specific to a single interface.
|
|
|
|
Author:
|
|
|
|
Steve Jones (stevej) 26-Oct-1989
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _NETTYPES_
|
|
#define _NETTYPES_
|
|
|
|
//
|
|
// The following basic type is used to provide extensibility in request
|
|
// and response packets. The OFFSET type is used to contain a value which
|
|
// is interpreted as a relative address consisting of a number of bytes
|
|
// from the beginning of the immediate parent structure.
|
|
//
|
|
|
|
typedef ULONG OFFSET;
|
|
|
|
//
|
|
// The following basic type is used throughout all the layers to pass a
|
|
// string through an I/O interface which does not allow embedded pointers.
|
|
// To allocate a FLAT_STRING, one must make room for the correct number of
|
|
// buffer bytes in the allocation.
|
|
//
|
|
|
|
typedef struct _FLAT_STRING {
|
|
SHORT MaximumLength; // total size of string buffer.
|
|
SHORT Length; // number of bytes represented in string.
|
|
char Buffer [1]; // the buffer itself follows this struct.
|
|
} FLAT_STRING, *PFLAT_STRING;
|
|
|
|
//
|
|
// Basic type used to represent a network name, typically as a component of
|
|
// a transport address structure through the TDI. This type is also passed
|
|
// through the NDI interface. This type is declared as a structure so that
|
|
// it can be extended easily without modifying applications, even though it
|
|
// currently only has one element.
|
|
//
|
|
//
|
|
|
|
typedef struct _NETWORK_NAME {
|
|
FLAT_STRING Name; // network name in FLAT_STRING format.
|
|
} NETWORK_NAME, *PNETWORK_NAME;
|
|
|
|
//
|
|
// Basic type used to represent an address at the hardware level of the
|
|
// network. Hardware addresses are abstract types which are mapped to
|
|
// adapter addresses by the physical provider. See the Physical Driver
|
|
// Interface specification for details on how this is accomplished.
|
|
//
|
|
|
|
#define HARDWARE_ADDRESS_LENGTH 6 // number of octets in a hardware address.
|
|
|
|
typedef struct _HARDWARE_ADDRESS {
|
|
UCHAR Address [HARDWARE_ADDRESS_LENGTH];
|
|
} HARDWARE_ADDRESS, *PHARDWARE_ADDRESS;
|
|
|
|
//
|
|
// Network management variable types used by all interface levels.
|
|
//
|
|
|
|
#define NETMAN_VARTYPE_ULONG 0 // type is a ULONG.
|
|
#define NETMAN_VARTYPE_HARDWARE_ADDRESS 1 // type is a HARDWARE_ADDRESS.
|
|
#define NETMAN_VARTYPE_STRING 2 // type is a FLAT_STRING.
|
|
|
|
#endif // _NETTYPES_
|