Source code of Windows XP (NT5)
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.
|
|
//================================================================================
// Copyright (C) 1997 Microsoft Corporation
// Author: RameshV
// All dealings with the stack and other non-Dhcp components go through the API
// given here
//================================================================================
#ifndef STACK_H_INCLUDED
#define STACK_H_INCLUDED
#include <iphlpapi.h>
//================================================================================
// Exported API's
//================================================================================
DWORD // win32 status
DhcpClearAllStackParameters( // undo the effects
IN PDHCP_CONTEXT DhcpContext // the adapter to undo
);
DWORD // win32 status
DhcpSetAllStackParameters( // set all stack details
IN PDHCP_CONTEXT DhcpContext, // the context to set stuff
IN PDHCP_FULL_OPTIONS DhcpOptions // pick up the configuration from off here
);
DWORD GetIpPrimaryAddresses( IN PMIB_IPADDRTABLE *IpAddrTable );
DWORD DhcpSetGateways( IN PDHCP_CONTEXT DhcpContext, IN PDHCP_FULL_OPTIONS DhcpOptions, IN BOOLEAN fForceUpdate );
// The classless route layout is:
// - 1 byte encoding the route subnet mask
// - depending on the mask, 0 to 4 bytes encoding the route destination address
// - 4 bytes for the gateway address for the route
// The route destination is encoded based on the value of mask:
// mask = 0 => destination = 0.0.0.0 (no bytes to encode it)
// mask = 1..8 => destination = b1.0.0.0 (1 byte to encode it)
// mask = 9..16 => destination = b1.b2.0.0 (2 bytes for encoding)
// mask = 17..24 => destination = b1.b2.b3.0 (3 bytes for encoding)
// mask = 25..32 => destination = b1.b2.b3.b4 (4 bytes for encoding)
#define CLASSLESS_ROUTE_LEN(x) (1+((x)?((((x)-1)>>3)+1):0)+4)
DWORD GetCLRoute( IN LPBYTE RouteData, OUT LPBYTE RouteDest, OUT LPBYTE RouteMask, OUT LPBYTE RouteGateway );
DWORD CheckCLRoutes( IN DWORD RoutesDataLen, IN LPBYTE RoutesData, OUT LPDWORD pNRoutes );
DWORD DhcpSetStaticRoutes( IN PDHCP_CONTEXT DhcpContext, IN PDHCP_FULL_OPTIONS DhcpOptions );
DWORD DhcpRegisterWithDns( IN PDHCP_CONTEXT DhcpContext, IN BOOL fDeRegister );
#endif STACK_H_INCLUDED
#ifndef SYSSTACK_H_INCLUDED
#define SYSSTACK_H_INCLUDED
//================================================================================
// imported api's
//================================================================================
DWORD // return interface index or -1
DhcpIpGetIfIndex( // get the IF index for this adapter
IN PDHCP_CONTEXT DhcpContext // context of adapter to get IfIndex for
);
DWORD // win32 status
DhcpSetRoute( // set a route with the stack
IN DWORD Dest, // network order destination
IN DWORD DestMask, // network order destination mask
IN DWORD IfIndex, // interface index to route
IN DWORD NextHop, // next hop n/w order address
IN DWORD Metric, // metric
IN BOOL IsLocal, // is this a local address? (IRE_DIRECT)
IN BOOL IsDelete // is this route being deleted?
);
ULONG TcpIpNotifyRouterDiscoveryOption( IN LPCWSTR AdapterName, IN BOOL fOptionPresent, IN DWORD OptionValue );
#endif SYSSTACK_H_INCLUDED
|