mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
71 lines
2.6 KiB
Text
71 lines
2.6 KiB
Text
GetAdaptersInfo --
|
|
Wine uses: HKEY_CURRENT_USER, "Software\\Wine\\Network"
|
|
-- Wins support is todo so this part isn't so important.
|
|
-- Overall, workable
|
|
Wine uses ansi functions
|
|
|
|
-- Done --
|
|
GetNetworkParams --
|
|
-- Make workable interface for _res
|
|
-- Wine based on real _res
|
|
-- ReactOS based on my enumerator funcs
|
|
|
|
-- Done -- Prints route info on windows
|
|
ROUTE PRINT:
|
|
|
|
iphlpapi_main.c:137 - ppIfTable 0104bd80, bOrder 1, heap 0xa0000000, flags 0x00000001
|
|
- AllocateAndGetIfTableFromStack
|
|
iphlpapi_main.c:898 - pIfTable 0104bd00, pdwSize 0104bd00, bOrder 1
|
|
- GetIfTable
|
|
(tcpip/main.c:168)(TiCreateFileObject) No EA information in IRP.
|
|
- We need a special case of no EA information to handle these ioctls in
|
|
tcpip.sys
|
|
iphlpapi_main.c:939 - returning 122
|
|
iphlpapi_main.c:898 - pIfTable 0104bd00, pdwSize 0104bd00, bOrder 1
|
|
- GetIfTable again
|
|
(tcpip/main.c:168)(TiCreateFileObject) No EA information in IRP.
|
|
(tcpip/main.c:168)(TiCreateFileObject) No EA information in IRP.
|
|
getInterfaceIndexTable: numInterfaces: 0
|
|
iphlpapi_main.c:939 - returning 0
|
|
iphlpapi_main.c:149 - returning 0
|
|
iphlpapi_main.c:213 - ppIpForwardTable 0104bd78, bOrder 1, heap 0xa0000000, flags 0x00000001
|
|
- AllocateAndGetIpForwardTableFromStack
|
|
iphlpapi_main.c:1151 - pIpForwardTable 00000000, pdwSize 0104bd00, bOrder 1
|
|
- GetIpForwardTable
|
|
iphlpapi_main.c:1214 - returning 122
|
|
iphlpapi_main.c:1151 - pIpForwardTable a0001d68, pdwSize 0104bd00, bOrder 1
|
|
- GetIpForwardTable again
|
|
iphlpapi_main.c:1214 - returning 122
|
|
iphlpapi_main.c:225 - returning 122
|
|
|
|
Overall architecture of the ifenum and ipstats functions.
|
|
|
|
Right now, I rely heavily on a couple of enumeration functions.
|
|
What I need to do is consolidate them and reduce traffic on the ioctl.
|
|
|
|
There are two things I need to do:
|
|
|
|
1. Lookup an interface by index (or name)
|
|
2. Get the IP info
|
|
|
|
I have too many functions that loop over various things.
|
|
|
|
What I need are the get** functions from ipstats (which I think are ok)
|
|
And then to change the detritus in ifenum to be all based on
|
|
getInterfaceIndexTable and getInterfaceMibByIndex, getInterfaceMibByName
|
|
|
|
Implementing name functions:
|
|
|
|
Ok here's what i can synthesize from unclegarlic and vizzini:
|
|
|
|
the IP_ADAPTER_INFO struct should contain the guid part of the registry key
|
|
name that holds the adapter
|
|
|
|
the snmp-style info functions should return a nice name, which is also from
|
|
the registry.
|
|
|
|
In no case is the adapter OID for name used. According to vizzini, this
|
|
OID is never used and probably almost never implemented.
|
|
|
|
This is different from the wine case because there are two different names
|
|
returned from the underlying layer.
|