330 lines
6.1 KiB
C
330 lines
6.1 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1996 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
nteapi.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
Definitions of routines for manipulating dynamic IP Network Table
|
|||
|
Entries (NTEs) and NBT devices (interfaces).
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Mike Massa (mikemas) 18-Mar-1996
|
|||
|
|
|||
|
Environment:
|
|||
|
|
|||
|
User Mode - Win32
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#ifndef _NTEAPI_INCLUDED_
|
|||
|
#define _NTEAPI_INCLUDED_
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Types
|
|||
|
//
|
|||
|
typedef struct {
|
|||
|
unsigned long Instance;
|
|||
|
IPAddr Address;
|
|||
|
IPMask SubnetMask;
|
|||
|
unsigned long Flags;
|
|||
|
} TCPIP_NTE_INFO, *PTCPIP_NTE_INFO;
|
|||
|
|
|||
|
#define TCPIP_NTE_DYNAMIC 0x00000010
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// APIs
|
|||
|
//
|
|||
|
DWORD
|
|||
|
TcpipAddNTE(
|
|||
|
IN LPWSTR AdapterName,
|
|||
|
IN IPAddr Address,
|
|||
|
IN IPMask SubnetMask,
|
|||
|
OUT PULONG NTEContext,
|
|||
|
OUT PULONG NTEInstance
|
|||
|
);
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Adds a new NTE to a specified IP interface. The target IP interface is
|
|||
|
identified by the name of the adapter associated with it.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
AdapterName - A unicode string identifying the adapter/interface to which
|
|||
|
to add the new NTE.
|
|||
|
|
|||
|
Address - The IP address to assign to the new NTE.
|
|||
|
|
|||
|
SubnetMask - The IP subnet mask to assign to the new NTE.
|
|||
|
|
|||
|
NTEContext - On output, contains the context value identifying the new NTE.
|
|||
|
|
|||
|
NTEInstance - On output, contains the instance ID of the new NTE.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
DWORD
|
|||
|
TcpipDeleteNTE(
|
|||
|
IN ULONG NTEContext
|
|||
|
);
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Deletes a specified NTE. The target NTE must have been added using
|
|||
|
TcpipAddNTE.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
NTEContext - The context value identifying the NTE to delete.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
DWORD
|
|||
|
TcpipSetNTEAddress(
|
|||
|
IN DWORD NTEContext,
|
|||
|
IN IPAddr Address,
|
|||
|
IN IPMask SubnetMask
|
|||
|
);
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Sets the address of a specified NTE.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
NTEContext - The context value identifying the target NTE.
|
|||
|
|
|||
|
Address - The IP address to assign to the NTE. Assigning 0.0.0.0
|
|||
|
invalidates the NTE.
|
|||
|
|
|||
|
SubnetMask - The IP subnet mask to assign to the NTE.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
DWORD
|
|||
|
TcpipGetNTEInfo(
|
|||
|
IN ULONG NTEContext,
|
|||
|
OUT PTCPIP_NTE_INFO NTEInfo
|
|||
|
);
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Gathers information about a specified NTE.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
NTEContext - The context value identifying the NTE to query.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
DWORD
|
|||
|
NbtAddInterface(
|
|||
|
OUT LPWSTR DeviceName,
|
|||
|
IN OUT LPDWORD DeviceNameSize,
|
|||
|
OUT PULONG DeviceInstance
|
|||
|
);
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Adds a new NBT interface.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
DeviceName - A unicode string identifying the new NBT interface.
|
|||
|
|
|||
|
DeviceNameSize - On input, the size of theh device name buffer.
|
|||
|
On output, the size of the device name string, or
|
|||
|
the size needed to accomodate the string.
|
|||
|
|
|||
|
DeviceInstance - A pointer to a variable into which to place the
|
|||
|
instance ID associated with the new interface.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
DWORD
|
|||
|
NbtDeleteInterface(
|
|||
|
IN LPWSTR DeviceName
|
|||
|
);
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Deletes an NBT interface.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
DeviceName - A unicode string identifying the target NBT interface.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
DWORD
|
|||
|
NbtBindInterface(
|
|||
|
IN LPWSTR DeviceName,
|
|||
|
IN IPAddr Address,
|
|||
|
IN IPMask SubnetMask
|
|||
|
);
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Binds a specified NBT interface to a specified IP address.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
DeviceName - A unicode string identifying the target NBT interface.
|
|||
|
|
|||
|
Address - The IP address to which bind the interface. Assigning 0.0.0.0
|
|||
|
invalidates the interface.
|
|||
|
|
|||
|
SubnetMask - The subnet mask of the IP interface.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
DWORD
|
|||
|
NbtSetWinsAddrInterface(
|
|||
|
IN LPWSTR DeviceName,
|
|||
|
IN IPAddr PrWinsAddress,
|
|||
|
IN IPAddr SecWinsAddress
|
|||
|
);
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Sets the WINS addrs for a given Nbt Interface.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
DeviceName - A unicode string identifying the target NBT interface.
|
|||
|
|
|||
|
PrWinsAddress - Primary WINS addr
|
|||
|
|
|||
|
SecWinsAddress - Secondary WINS addr
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
DWORD
|
|||
|
NbtGetInterfaceInfo(
|
|||
|
IN LPWSTR DeviceName,
|
|||
|
OUT IPAddr * Address,
|
|||
|
OUT PULONG DeviceInstance
|
|||
|
);
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Returns the IP address to which an NBT interface is bound and the interface
|
|||
|
instance ID.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
DeviceName - A unicode string identifying the target NBT interface.
|
|||
|
|
|||
|
Address - A pointer to the location in which to store the address of the
|
|||
|
interface.
|
|||
|
|
|||
|
DeviceInstance - A pointer to the location in which to store the instance ID
|
|||
|
associated with the interface.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
DWORD
|
|||
|
NbtGetWinsAddresses(
|
|||
|
IN LPWSTR DeviceName,
|
|||
|
OUT IPAddr * PrimaryWinsServer,
|
|||
|
OUT IPAddr * SecondaryWinsServer
|
|||
|
);
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Returns the addresses of the WINS servers for which the specified device
|
|||
|
is configured.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
DeviceName - A unicode string identifying the target NBT interface.
|
|||
|
|
|||
|
PrimaryWinsServer - A pointer to a variable into which to place the address
|
|||
|
of the primary WINS server.
|
|||
|
|
|||
|
SecondaryWinsServer - A pointer to a variable into which to place the address
|
|||
|
of the primary WINS server.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
ERROR_SUCCESS if the operation was successful.
|
|||
|
A Windows error code otherwise.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
#endif // ifndef _NTEAPI_INCLUDED_
|
|||
|
|
|||
|
|