xpmgr/BuildTools/Include/ifmib.h

80 lines
1.6 KiB
C

/*++
Copyright (c) Microsoft Corporation
Module Name:
ifmib.h
Abstract:
This module contains the public definitions and structures for the
non-TCP/IP specific parts of MIB-II. These definitions were previously
in iprtrmib.h, which now includes this file.
--*/
#ifndef _IFMIB_
#define _IFMIB_
#pragma once
#include <ifdef.h>
#ifndef ANY_SIZE
#define ANY_SIZE 1
#endif
typedef struct _MIB_IFNUMBER
{
DWORD dwValue;
} MIB_IFNUMBER, *PMIB_IFNUMBER;
//
// $REVIEW: This has always been defined as 8. However, this is not
// sufficient for all media types.
//
#define MAXLEN_PHYSADDR 8
#define MAXLEN_IFDESCR 256
#define MAX_INTERFACE_NAME_LEN 256
typedef struct _MIB_IFROW {
WCHAR wszName[MAX_INTERFACE_NAME_LEN];
IF_INDEX dwIndex;
IFTYPE dwType;
DWORD dwMtu;
DWORD dwSpeed;
DWORD dwPhysAddrLen;
UCHAR bPhysAddr[MAXLEN_PHYSADDR];
DWORD dwAdminStatus;
INTERNAL_IF_OPER_STATUS dwOperStatus;
DWORD dwLastChange;
DWORD dwInOctets;
DWORD dwInUcastPkts;
DWORD dwInNUcastPkts;
DWORD dwInDiscards;
DWORD dwInErrors;
DWORD dwInUnknownProtos;
DWORD dwOutOctets;
DWORD dwOutUcastPkts;
DWORD dwOutNUcastPkts;
DWORD dwOutDiscards;
DWORD dwOutErrors;
DWORD dwOutQLen;
DWORD dwDescrLen;
UCHAR bDescr[MAXLEN_IFDESCR];
} MIB_IFROW, *PMIB_IFROW;
typedef struct _MIB_IFTABLE {
DWORD dwNumEntries;
MIB_IFROW table[ANY_SIZE];
} MIB_IFTABLE, *PMIB_IFTABLE;
#define SIZEOF_IFTABLE(X) (FIELD_OFFSET(MIB_IFTABLE,table[0]) + \
((X) * sizeof(MIB_IFROW)) + ALIGN_SIZE)
#endif // _IFMIB_