+ -
当前位置:首页 → 问答吧 → 关于GetExtendedTcpTable的问题

关于GetExtendedTcpTable的问题

时间:2011-11-23

来源:互联网

下面是我的代码:
Delphi(Pascal) code

  ANY_SIZE:=256;
  MIB_TCPROW_OWNER_PID = Record
    dwState:DWORD;
    dwLocalAddr:DWORD;
    dwLocalPort:DWORD;
    dwRemoteAddr:DWORD;
    dwRemotePort:DWORD;
    dwOwningPid:DWORD;
  End;

  MIB_TCPTABLE = Record
    deNumEntries:DWORD;
    Table:array[0..ANY_SIZE-1] of MIB_TCPROW_OWNER_PID;
  End;
  TCP_TABLE_CLASS =(TCP_TABLE_BASIC_LISTENER,
  TCP_TABLE_BASIC_CONNECTIONS,
  TCP_TABLE_BASIC_ALL,
  TCP_TABLE_OWNER_PID_LISTENER,
  TCP_TABLE_OWNER_PID_CONNECTIONS,
  TCP_TABLE_OWNER_PID_ALL,
  TCP_TABLE_OWNER_MODULE_LISTENER,
  TCP_TABLE_OWNER_MODULE_CONNECTIONS,
  TCP_TABLE_OWNER_MODULE_ALL
  );
  PMIB_TCPTABLE=^MIB_TCPTABLE;
var
  Form1: TForm1;
implementation

{$R *.dfm}
function GetExtendedTcpTable(
    var pTcpTable;
    pdwSize:PDWORD;
    bOrder:Boolean;
    ulAf:ULONG;
    Tableclass:TCP_TABLE_CLASS;
    Reserved:ULONG
    ):DWORD;stdcall; external 'iphlpapi.dll'
    name 'GetExtendedTcpTable';

procedure TForm1.Button2Click(Sender: TObject);
Var
 // hSnapshot: THandle; // 进程快照
  pTcpTable:PMIB_TCPTABLE;
  pdwSize:PDWORD;
  Tableclass:TCP_TABLE_CLASS;
  i:Integer;
  ByteArr:array[0..3] of Byte;
  IPAddr:DWORD;
  Str:String;
  Size:DWORD;
  TcpTable:MIB_TCPTABLE;
  Code:DWORD;
begin
  Tableclass:=TCP_TABLE_OWNER_PID_CONNECTIONS;
  pTcpTable:=nil;
  Size:=0;
  pdwSize:=@Size;
  Code:=GetExtendedTcpTable(pTcpTable,pdwSize,True,2,Tableclass,0);
  showmessage(IntToStr(Code));
end;


GetExtendedTcpTable返回的数值Code是87 msdn的解释是无效的参数,请问怎么回事啊?我不知道调用错在哪里?

作者: taoran12   发布时间: 2011-11-23

该回复于2011-11-24 13:13:36被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#2楼 得分:0回复于:2011-11-24 13:01:36
继续帮顶
我的就有点晕

作者: kaikai_kk   发布时间: 2011-11-24