Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi GetExtendedTcpTable -> mit untersch. Betriebssystemen (https://www.delphipraxis.net/114739-getextendedtcptable-mit-untersch-betriebssystemen.html)

hirnstroem 30. Mai 2008 12:35


GetExtendedTcpTable -> mit untersch. Betriebssystemen
 
'loha Folks,

die GetExtendedTcpTable (und GetOwnerModuleFromTcpEntry) Methode(n) der iphlpapi.dll verhalten sich je nach Betriebssystem unterschiedlich, respektive funktionieren unter Windows Server 2003 überhaupt nicht.

Untenstehender Code ist Teil einer über CodeCentral angebotenen Unit (http://cc.codegear.com/download.aspx...phelp.pas&ln=1) und zeigt, wie die verschiedenen verfügbaren TCP und UDP Tabellen geladen werden:

Delphi-Quellcode:
initialization
  WSAStartup(MAKEWORD(1, 1), WSADATA);
  GetTcpTable:= nil;
  GetExtendedTcpTable:= nil;
  GetOwnerModuleFromTcpEntry:= nil;
  LibHandle:= LoadLibrary('iphlpapi.dll');
  if LibHandle <> 0 then
  begin
    GetTcpTable:= GetProcAddress(LibHandle,'GetTcpTable');
    GetExtendedTcpTable:= GetProcAddress(LibHandle,'GetExtendedTcpTable');
    GetOwnerModuleFromTcpEntry:= GetProcAddress(LibHandle,'GetOwnerModuleFromTcpEntry');
    GetUdpTable:= GetProcAddress(LibHandle,'GetUdpTable');
    GetExtendedUdpTable:= GetProcAddress(LibHandle,'GetExtendedUdpTable');
    GetOwnerModuleFromUdpEntry:= GetProcAddress(LibHandle,'GetOwnerModuleFromUdpEntry');
  end;
Das Problem ist, dass GetExtendedTcpTable sowie GetOwnerModuleFromTcpEntry unter Windows Server 2003 stets nil sind, unter Windows XP hingegen nicht. Ich benötige die Information, welcher Prozess auf welchem Port horcht und diese wäre der erweiterten TCP Tabelle zu entnehmen.

Wie das geschilderte Verhalten zustande kommt, ist mir ein Rätsel, deshalb dieser Beitrag.

Grüsse
hirnstroem

brechi 30. Mai 2008 14:04

Re: GetExtendedTcpTable -> mit untersch. Betriebssystemen
 
Client Requires Windows Vista or Windows XP SP2.
Server Requires Windows Server 2008 or Windows Server 2003 SP1.


SP1 installiert?

hirnstroem 30. Mai 2008 14:28

Re: GetExtendedTcpTable -> mit untersch. Betriebssystemen
 
SP1 ist nicht installiert, wird folglich wohl noch nachgeholt.

Vielen Dank für den Hinweis brechi!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz