/*++ 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_