Delete ddentry.h and create official ddrawgdi.h header instead, delete duplicate GL include folder, move internal headers to internal libs, delete tcpmisc.h and move its defines to official tcpioctl.h, fix up winddi.h and cleanup gdi32 header.

svn path=/trunk/; revision=16342
This commit is contained in:
Alex Ionescu 2005-06-30 12:31:36 +00:00
parent 56ac965dc9
commit 005201f320
12 changed files with 286 additions and 1401 deletions

View file

@ -1,52 +0,0 @@
#include_next <GL/glu.h>
#ifndef GLU_NURBS_BEGIN
#define GLU_NURBS_ERROR 100103
#define GLU_NURBS_BEGIN 100164
#define GLU_NURBS_BEGIN_EXT 100164
#define GLU_NURBS_VERTEX 100165
#define GLU_NURBS_VERTEX_EXT 100165
#define GLU_NURBS_NORMAL 100166
#define GLU_NURBS_NORMAL_EXT 100166
#define GLU_NURBS_COLOR 100167
#define GLU_NURBS_COLOR_EXT 100167
#define GLU_NURBS_TEXTURE_COORD 100168
#define GLU_NURBS_TEX_COORD_EXT 100168
#define GLU_NURBS_END 100169
#define GLU_NURBS_END_EXT 100169
#define GLU_NURBS_BEGIN_DATA 100170
#define GLU_NURBS_BEGIN_DATA_EXT 100170
#define GLU_NURBS_VERTEX_DATA 100171
#define GLU_NURBS_VERTEX_DATA_EXT 100171
#define GLU_NURBS_NORMAL_DATA 100172
#define GLU_NURBS_NORMAL_DATA_EXT 100172
#define GLU_NURBS_COLOR_DATA 100173
#define GLU_NURBS_COLOR_DATA_EXT 100173
#define GLU_NURBS_TEXTURE_COORD_DATA 100174
#define GLU_NURBS_TEX_COORD_DATA_EXT 100174
#define GLU_NURBS_END_DATA 100175
#define GLU_NURBS_END_DATA_EXT 100175
#define GLU_AUTO_LOAD_MATRIX 100200
#define GLU_CULLING 100201
#define GLU_SAMPLING_TOLERANCE 100203
#define GLU_DISPLAY_MODE 100204
#define GLU_PARAMETRIC_TOLERANCE 100202
#define GLU_SAMPLING_METHOD 100205
#define GLU_U_STEP 100206
#define GLU_V_STEP 100207
#define GLU_NURBS_MODE 100160
#define GLU_NURBS_MODE_EXT 100160
#define GLU_NURBS_TESSELLATOR 100161
#define GLU_NURBS_TESSELLATOR_EXT 100161
#define GLU_NURBS_RENDERER 100162
#define GLU_NURBS_RENDERER_EXT 100162
#define GLU_OBJECT_PARAMETRIC_ERROR 100208
#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208
#define GLU_OBJECT_PATH_LENGTH 100209
#define GLU_OBJECT_PATH_LENGTH_EXT 100209
#define GLU_PATH_LENGTH 100215
#define GLU_PARAMETRIC_ERROR 100216
#define GLU_DOMAIN_DISTANCE 100217
#endif

View file

@ -1,95 +0,0 @@
/*
* DirectDraw GDI32.dll interface definitions
* Copyright (C) 2003 ReactOS Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <ddk/ddrawi.h>
#include <ddk/d3dhal.h>
#include <ddk/winddi.h>
BOOL STDCALL DdCreateDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
HDC hdc
);
BOOL STDCALL DdQueryDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
LPDDHALINFO pHalInfo,
LPDDHAL_DDCALLBACKS pDDCallbacks,
LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
LPD3DHAL_CALLBACKS pD3dCallbacks,
LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
LPDDSURFACEDESC pD3dTextureFormats,
LPDWORD pdwFourCC,
LPVIDMEM pvmList
);
BOOL STDCALL DdDeleteDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal
);
BOOL STDCALL DdCreateSurfaceObject(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
BOOL bPrimarySurface
);
BOOL STDCALL DdDeleteSurfaceObject(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
);
BOOL STDCALL DdResetVisrgn(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
HWND hWnd
);
BOOL STDCALL DdGetDC(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
LPPALETTEENTRY pColorTable
);
BOOL STDCALL DdReleaseDC(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
);
HBITMAP STDCALL DdCreateDIBSection(
HDC hdc,
CONST BITMAPINFO *pbmi,
UINT iUsage,
VOID **ppvBits,
HANDLE hSectionApp,
DWORD dwOffset
);
BOOL STDCALL DdReenableDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
BOOL *pbNewMode
);
BOOL STDCALL DdAttachSurface(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom,
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo
);
VOID STDCALL DdUnattachSurface(
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceAttached
);
ULONG STDCALL DdQueryDisplaySettingsUniqueness(VOID);
HANDLE STDCALL DdGetDxHandle(
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
BOOL bRelease
);
BOOL STDCALL DdSetGammaRamp(
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
HDC hdc,
LPVOID lpGammaRamp
);
DWORD STDCALL DdSwapTextureHandles(
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl1,
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl2
);

File diff suppressed because it is too large Load diff

View file

@ -1,101 +0,0 @@
/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
See the file COPYING for copying permission.
*/
#ifndef Expat_External_INCLUDED
#define Expat_External_INCLUDED 1
/* External API definitions */
#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__)
#define XML_USE_MSC_EXTENSIONS 1
#endif
/* Expat tries very hard to make the API boundary very specifically
defined. There are two macros defined to control this boundary;
each of these can be defined before including this header to
achieve some different behavior, but doing so it not recommended or
tested frequently.
XMLCALL - The calling convention to use for all calls across the
"library boundary." This will default to cdecl, and
try really hard to tell the compiler that's what we
want.
XMLIMPORT - Whatever magic is needed to note that a function is
to be imported from a dynamically loaded library
(.dll, .so, or .sl, depending on your platform).
The XMLCALL macro was added in Expat 1.95.7. The only one which is
expected to be directly useful in client code is XMLCALL.
Note that on at least some Unix versions, the Expat library must be
compiled with the cdecl calling convention as the default since
system headers may assume the cdecl convention.
*/
#ifndef XMLCALL
#if defined(XML_USE_MSC_EXTENSIONS)
#define XMLCALL __cdecl
#elif defined(__GNUC__) && defined(__i386)
#define XMLCALL __attribute__((cdecl))
#else
/* For any platform which uses this definition and supports more than
one calling convention, we need to extend this definition to
declare the convention used on that platform, if it's possible to
do so.
If this is the case for your platform, please file a bug report
with information on how to identify your platform via the C
pre-processor and how to specify the same calling convention as the
platform's malloc() implementation.
*/
#define XMLCALL
#endif
#endif /* not defined XMLCALL */
#if !defined(XML_STATIC) && !defined(XMLIMPORT)
#ifndef XML_BUILDING_EXPAT
/* using Expat from an application */
#ifdef XML_USE_MSC_EXTENSIONS
#define XMLIMPORT __declspec(dllimport)
#endif
#endif
#endif /* not defined XML_STATIC */
/* If we didn't define it above, define it away: */
#ifndef XMLIMPORT
#define XMLIMPORT
#endif
#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
#ifdef __cplusplus
extern "C" {
#endif
#ifdef XML_UNICODE_WCHAR_T
#define XML_UNICODE
#endif
#ifdef XML_UNICODE /* Information is UTF-16 encoded. */
#ifdef XML_UNICODE_WCHAR_T
typedef wchar_t XML_Char;
typedef wchar_t XML_LChar;
#else
typedef unsigned short XML_Char;
typedef char XML_LChar;
#endif /* XML_UNICODE_WCHAR_T */
#else /* Information is UTF-8 encoded. */
typedef char XML_Char;
typedef char XML_LChar;
#endif /* XML_UNICODE */
#ifdef __cplusplus
}
#endif
#endif /* not Expat_External_INCLUDED */

View file

@ -1,98 +0,0 @@
#ifndef TCPMISC_H
#define TCPMISC_H
#define IF_MIB_STATS_ID 1
#define MAX_PHYSADDR_SIZE 8
#define MAX_IFDESCR_LEN 256
/* ID to use for requesting an IFEntry for an interface */
#define IF_MIB_STATS_ID 1
/* ID to use for requesting an IPSNMPInfo for an interface */
#define IP_MIB_STATS_ID 1
/* ID to use for requesting the route table */
#define IP_MIB_ROUTETABLE_ENTRY_ID 0x101
#define IP_MIB_ADDRTABLE_ENTRY_ID 0x102
typedef struct IFEntry {
ULONG if_index;
ULONG if_type;
ULONG if_mtu;
ULONG if_speed;
ULONG if_physaddrlen;
UCHAR if_physaddr[MAX_PHYSADDR_SIZE];
ULONG if_adminstatus;
ULONG if_operstatus;
ULONG if_lastchange;
ULONG if_inoctets;
ULONG if_inucastpkts;
ULONG if_innucastpkts;
ULONG if_indiscards;
ULONG if_inerrors;
ULONG if_inunknownprotos;
ULONG if_outoctets;
ULONG if_outucastpkts;
ULONG if_outnucastpkts;
ULONG if_outdiscards;
ULONG if_outerrors;
ULONG if_outqlen;
ULONG if_descrlen;
UCHAR if_descr[1];
} IFEntry;
// As in the mib from RFC 1213
typedef struct _IPRouteEntry {
ULONG ire_dest;
ULONG ire_index; //matches if_index in IFEntry and iae_index in IPAddrEntry
ULONG ire_metric1;
ULONG ire_metric2;
ULONG ire_metric3;
ULONG ire_metric4;
ULONG ire_gw;
ULONG ire_type;
ULONG ire_proto;
ULONG ire_age;
ULONG ire_mask;
ULONG ire_metric5;
ULONG ire_info;
} IPRouteEntry;
typedef struct _IPAddrEntry {
ULONG iae_addr;
ULONG iae_index;
ULONG iae_mask;
ULONG iae_bcastaddr;
ULONG iae_reasmsize;
ULONG iae_context;
ULONG iae_pad;
} IPAddrEntry;
typedef struct _IPSNMPInfo {
ULONG ipsi_index;
ULONG ipsi_forwarding;
ULONG ipsi_defaultttl;
ULONG ipsi_inreceives;
ULONG ipsi_inhdrerrors;
ULONG ipsi_inaddrerrors;
ULONG ipsi_inunknownprotos;
ULONG ipsi_indiscards;
ULONG ipsi_indelivers;
ULONG ipsi_outrequests;
ULONG ipsi_routingdiscards;
ULONG ipsi_outdiscards;
ULONG ipsi_outnoroutes;
ULONG ipsi_reasmtimeout;
ULONG ipsi_reasmreqds;
ULONG ipsi_reasmoks;
ULONG ipsi_reasmfails;
ULONG ipsi_fragoks;
ULONG ipsi_fragfails;
ULONG ipsi_fragcreates;
ULONG ipsi_numif;
ULONG ipsi_numaddr;
ULONG ipsi_numroutes;
} IPSNMPInfo;
#endif /* TCPMISC_H */

View file

@ -58,7 +58,9 @@
typedef PVOID PGDIOBJ;
#ifndef NTOS_MODE_USER
typedef BOOL (INTERNAL_CALL *GDICLEANUPPROC)(PVOID ObjectBody);
#endif
/*!
* GDI object header. This is a part of any GDI object

View file

@ -1,11 +1,26 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS System Libraries
* FILE: lib/gdi32/include/precomp.h
* PURPOSE: User-Mode Win32 GDI Library Header
* PROGRAMMER: Alex Ionescu (alex@relsoft.net)
*/
/* INCLUDES ******************************************************************/
/* SDK/DDK/NDK Headers. */
#include <windows.h>
#include <ddraw.h>
#include <ddk/winddi.h>
#include <ddk/prntfont.h>
#include <ddrawgdi.h>
#define NTOS_MODE_USER
#include <ndk/ntndk.h>
#include <ddentry.h>
#include <ddraw.h>
#include <ddk/prntfont.h>
#include <string.h>
/* Win32K External Headers */
#include <win32k/kapi.h>
/* FIXME: ROSRTL */
#include <rosrtl/logfont.h>
#include <rosrtl/devmode.h>
@ -21,7 +36,6 @@
#define NtUserSetDCPenColor(hbr, crColor) \
(COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)
#ifdef __USE_W32API
typedef int (CALLBACK* EMFPLAYPROC)( HDC, INT, HANDLE );
typedef DWORD FULLSCREENCONTROL;
typedef DWORD UNIVERSAL_FONT_ID;
@ -30,7 +44,6 @@ typedef DWORD REALIZATION_INFO;
typedef REALIZATION_INFO *PREALIZATION_INFO;
typedef DWORD CHWIDTHINFO;
typedef CHWIDTHINFO *PCHWIDTHINFO;
#endif
/* == GLOBAL VARIABLES ====================================================== */

View file

@ -25,7 +25,6 @@
#define NTOS_MODE_USER
#include <ndk/ntndk.h>
#include <rosrtl/string.h>
#include <tcpmisc.h>
#include <winsock2.h>
#include <nspapi.h>
#include <iptypes.h>
@ -59,6 +58,26 @@
#define TCP_REQUEST_QUERY_INFORMATION_INIT { { { 0 } } }
#define TCP_REQUEST_SET_INFORMATION_INIT { { 0 } }
#define IP_MIB_ROUTETABLE_ENTRY_ID 0x101
// As in the mib from RFC 1213
typedef struct _IPRouteEntry {
ULONG ire_dest;
ULONG ire_index; //matches if_index in IFEntry and iae_index in IPAddrEntry
ULONG ire_metric1;
ULONG ire_metric2;
ULONG ire_metric3;
ULONG ire_metric4;
ULONG ire_gw;
ULONG ire_type;
ULONG ire_proto;
ULONG ire_age;
ULONG ire_mask;
ULONG ire_metric5;
ULONG ire_info;
} IPRouteEntry;
/* No caddr_t in reactos headers */
typedef char *caddr_t;

View file

@ -31,43 +31,13 @@
#error video.h cannot be included with winddi.h
#else
#include <wingdi.h>
#include <ddrawint.h>
#include <d3dnthal.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __DD_INCLUDED__
/* FIXME: Some DirectDraw structures not added yet */
typedef ULONG_PTR FLATPTR;
typedef struct _DD_SURFACECALLBACKS {
} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
typedef struct _DD_PALETTECALLBACKS {
} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
typedef struct _DD_CALLBACKS {
} DD_CALLBACKS, *PDD_CALLBACKS;
typedef struct _DD_HALINFO {
} DD_HALINFO, *PDD_HALINFO;
typedef struct _VIDEOMEMORY {
} VIDEOMEMORY, *LPVIDEOMEMORY;
typedef struct _DD_DIRECTDRAW_GLOBAL {
} DD_DIRECTDRAW_GLOBAL, *LPDD_DIRECTDRAW_GLOBAL;
typedef struct _DD_SURFACE_LOCAL {
} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL, *LPDD_SURFACE_LOCAL;
#endif
#ifndef __DDRAWI_INCLUDED__
typedef PVOID LPVIDMEM;
#endif
#if !defined(__DD_INCLUDED__) && !defined(__DDRAWI_INCLUDED__)
typedef struct _DDSCAPS {
} DDSCAPS, *PDDSCAPS;
typedef struct _DDSCAPSEX {
} DDSCAPSEX, *PDDSCAPSEX;
typedef PVOID LPVMEMHEAP;
#endif
#ifndef DECL_IMPORT
#define DECL_IMPORT __attribute__((dllimport))
#endif
@ -120,9 +90,6 @@ DECLARE_HANDLE(DHSURF);
DECLARE_HANDLE(DHPDEV);
DECLARE_HANDLE(HDRVOBJ);
#define GDI_DRIVER_VERSION 0x4000
typedef struct _ENG_EVENT *PEVENT;
#define OPENGL_CMD 4352

View file

@ -0,0 +1,163 @@
/*
* DirectDraw GDI32.dll interface definitions
* Copyright (C) 2003 ReactOS Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* Define the real export names */
#if 0 /* FIXME */
#define DdCreateDirectDrawObject GdiEntry1
#define DdQueryDirectDrawObject GdiEntry2
#define DdDeleteDirectDrawObject GdiEntry3
#define DdCreateSurfaceObject GdiEntry4
#define DdDeleteSurfaceObject GdiEntry5
#define DdResetVisrgn GdiEntry6
#define DdGetDC GdiEntry7
#define DdReleaseDC GdiEntry8
#define DdCreateDIBSection GdiEntry9
#define DdReenableDirectDrawObject GdiEntry10
#define DdAttachSurface GdiEntry11
#define DdUnattachSurface GdiEntry12
#define DdQueryDisplaySettingsUniqueness GdiEntry13
#define DdGetDxHandle GdiEntry14
#define DdSetGammaRamp GdiEntry15
#define DdSwapTextureHandles GdiEntry16
#endif
typedef struct _D3DHAL_CALLBACKS FAR *LPD3DHAL_CALLBACKS;
typedef struct _D3DHAL_GLOBALDRIVERDATA FAR *LPD3DHAL_GLOBALDRIVERDATA;
BOOL
STDCALL
DdCreateDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
HDC hdc
);
BOOL
STDCALL
DdQueryDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
LPDDHALINFO pHalInfo,
LPDDHAL_DDCALLBACKS pDDCallbacks,
LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
LPD3DHAL_CALLBACKS pD3dCallbacks,
LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
LPDDSURFACEDESC pD3dTextureFormats,
LPDWORD pdwFourCC,
LPVIDMEM pvmList
);
BOOL
STDCALL
DdDeleteDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal
);
BOOL
STDCALL
DdCreateSurfaceObject(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
BOOL bPrimarySurface
);
BOOL
STDCALL
DdDeleteSurfaceObject(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
);
BOOL
STDCALL
DdResetVisrgn(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
HWND hWnd
);
BOOL
STDCALL
DdGetDC(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
LPPALETTEENTRY pColorTable
);
BOOL
STDCALL
DdReleaseDC(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
);
HBITMAP
STDCALL
DdCreateDIBSection(
HDC hdc,
CONST BITMAPINFO *pbmi,
UINT iUsage,
VOID **ppvBits,
HANDLE hSectionApp,
DWORD dwOffset
);
BOOL
STDCALL
DdReenableDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
BOOL *pbNewMode
);
BOOL
STDCALL
DdAttachSurface(
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom,
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo
);
VOID
STDCALL
DdUnattachSurface(
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceAttached
);
ULONG
STDCALL
DdQueryDisplaySettingsUniqueness(VOID);
HANDLE
STDCALL
DdGetDxHandle(
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
BOOL bRelease
);
BOOL
STDCALL
DdSetGammaRamp(
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
HDC hdc,
LPVOID lpGammaRamp
);
DWORD
STDCALL
DdSwapTextureHandles(
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl1,
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl2
);

View file

@ -43,4 +43,84 @@
#define IOCTL_DELETE_IP_ADDRESS \
_TCP_CTL_CODE(16, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IF_MIB_STATS_ID 1
#define IP_MIB_STATS_ID 1
#define IP_MIB_ADDRTABLE_ENTRY_ID 0x102
#define IP_INTFC_INFO_ID 0x103
#define MAX_PHYSADDR_SIZE 8
typedef struct IFEntry
{
ULONG if_index;
ULONG if_type;
ULONG if_mtu;
ULONG if_speed;
ULONG if_physaddrlen;
UCHAR if_physaddr[MAX_PHYSADDR_SIZE];
ULONG if_adminstatus;
ULONG if_operstatus;
ULONG if_lastchange;
ULONG if_inoctets;
ULONG if_inucastpkts;
ULONG if_innucastpkts;
ULONG if_indiscards;
ULONG if_inerrors;
ULONG if_inunknownprotos;
ULONG if_outoctets;
ULONG if_outucastpkts;
ULONG if_outnucastpkts;
ULONG if_outdiscards;
ULONG if_outerrors;
ULONG if_outqlen;
ULONG if_descrlen;
UCHAR if_descr[1];
} IFEntry;
typedef struct IPSNMPInfo
{
ULONG ipsi_forwarding;
ULONG ipsi_defaultttl;
ULONG ipsi_inreceives;
ULONG ipsi_inhdrerrors;
ULONG ipsi_inaddrerrors;
ULONG ipsi_forwdatagrams;
ULONG ipsi_inunknownprotos;
ULONG ipsi_indiscards;
ULONG ipsi_indelivers;
ULONG ipsi_outrequests;
ULONG ipsi_routingdiscards;
ULONG ipsi_outdiscards;
ULONG ipsi_outnoroutes;
ULONG ipsi_reasmtimeout;
ULONG ipsi_reasmreqds;
ULONG ipsi_reasmoks;
ULONG ipsi_reasmfails;
ULONG ipsi_fragoks;
ULONG ipsi_fragfails;
ULONG ipsi_fragcreates;
ULONG ipsi_numif;
ULONG ipsi_numaddr;
ULONG ipsi_numroutes;
} IPSNMPInfo;
typedef struct IPAddrEntry
{
ULONG iae_addr;
ULONG iae_index;
ULONG iae_mask;
ULONG iae_bcastaddr;
ULONG iae_reasmsize;
USHORT iae_context;
USHORT iae_pad;
} IPAddrEntry;
typedef struct IPInterfaceInfo
{
ULONG iii_flags;
ULONG iii_mtu;
ULONG iii_speed;
ULONG iii_addrlength;
UCHAR iii_addr[1];
} IPInterfaceInfo;
#endif/*_TCPIOCTL_H*/