⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwatraffic.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 2 页
字号:
function TcDeregisterClient(ClientHandle: HANDLE): ULONG; stdcall;
{$EXTERNALSYM TcDeregisterClient}
function TcDeleteFlow(FlowHandle: HANDLE): ULONG; stdcall;
{$EXTERNALSYM TcDeleteFlow}
function TcDeleteFilter(FilterHandle: HANDLE): ULONG; stdcall;
{$EXTERNALSYM TcDeleteFilter}
function TcEnumerateFlows(IfcHandle: HANDLE; var pEnumHandle: HANDLE; var pFlowCount, pBufSize: ULONG; var Buffer: ENUMERATION_BUFFER): ULONG; stdcall;
{$EXTERNALSYM TcEnumerateFlows}

{$IFDEF UNICODE}

function TcOpenInterface(pInterfaceName: LPWSTR; ClientHandle, ClIfcCtx: HANDLE; var pIfcHandle: HANDLE): ULONG; stdcall;
{$EXTERNALSYM TcOpenInterface}
function TcQueryFlow(pFlowName: LPWSTR; const pGuidParam: GUID; var pBufferSize: ULONG; Buffer: PVOID): ULONG; stdcall;
{$EXTERNALSYM TcQueryFlow}
function TcSetFlow(pFlowName: LPWSTR; const pGuidParam: GUID; BufferSize: GUID; Buffer: PVOID): ULONG; stdcall;
{$EXTERNALSYM TcSetFlow}
function TcGetFlowName(FlowHandle: HANDLE; StrSize: ULONG; pFlowName: LPWSTR): ULONG; stdcall;
{$EXTERNALSYM TcGetFlowName}

{$ELSE}

function TcOpenInterface(pInterfaceName: LPSTR; ClientHandle, ClIfcCtx: HANDLE; var pIfcHandle: HANDLE): ULONG; stdcall;
{$EXTERNALSYM TcOpenInterface}
function TcQueryFlow(pFlowName: LPSTR; const pGuidParam: GUID; var pBufferSize: ULONG; Buffer: PVOID): ULONG; stdcall;
{$EXTERNALSYM TcQueryFlow}
function TcSetFlow(pFlowName: LPSTR; const pGuidParam: GUID; BufferSize: GUID; Buffer: PVOID): ULONG; stdcall;
{$EXTERNALSYM TcSetFlow}
function TcGetFlowName(FlowHandle: HANDLE; StrSize: ULONG; pFlowName: LPSTR): ULONG; stdcall;
{$EXTERNALSYM TcGetFlowName}

{$ENDIF}

implementation

const
  traffic_lib = 'traffic.dll';


{$IFDEF DYNAMIC_LINK}
var
  _TcRegisterClient: Pointer;

function TcRegisterClient;
begin
  GetProcedureAddress(_TcRegisterClient, traffic_lib, 'TcRegisterClient');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcRegisterClient]
  end;
end;
{$ELSE}
function TcRegisterClient; external traffic_lib name 'TcRegisterClient';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcEnumerateInterfaces: Pointer;

function TcEnumerateInterfaces;
begin
  GetProcedureAddress(_TcEnumerateInterfaces, traffic_lib, 'TcEnumerateInterfaces');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcEnumerateInterfaces]
  end;
end;
{$ELSE}
function TcEnumerateInterfaces; external traffic_lib name 'TcEnumerateInterfaces';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcOpenInterfaceA: Pointer;

function TcOpenInterfaceA;
begin
  GetProcedureAddress(_TcOpenInterfaceA, traffic_lib, 'TcOpenInterfaceA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcOpenInterfaceA]
  end;
end;
{$ELSE}
function TcOpenInterfaceA; external traffic_lib name 'TcOpenInterfaceA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcOpenInterfaceW: Pointer;

function TcOpenInterfaceW;
begin
  GetProcedureAddress(_TcOpenInterfaceW, traffic_lib, 'TcOpenInterfaceW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcOpenInterfaceW]
  end;
end;
{$ELSE}
function TcOpenInterfaceW; external traffic_lib name 'TcOpenInterfaceW';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcCloseInterface: Pointer;

function TcCloseInterface;
begin
  GetProcedureAddress(_TcCloseInterface, traffic_lib, 'TcCloseInterface');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcCloseInterface]
  end;
end;
{$ELSE}
function TcCloseInterface; external traffic_lib name 'TcCloseInterface';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcQueryInterface: Pointer;

function TcQueryInterface;
begin
  GetProcedureAddress(_TcQueryInterface, traffic_lib, 'TcQueryInterface');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcQueryInterface]
  end;
end;
{$ELSE}
function TcQueryInterface; external traffic_lib name 'TcQueryInterface';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcSetInterface: Pointer;

function TcSetInterface;
begin
  GetProcedureAddress(_TcSetInterface, traffic_lib, 'TcSetInterface');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcSetInterface]
  end;
end;
{$ELSE}
function TcSetInterface; external traffic_lib name 'TcSetInterface';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcQueryFlowA: Pointer;

function TcQueryFlowA;
begin
  GetProcedureAddress(_TcQueryFlowA, traffic_lib, 'TcQueryFlowA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcQueryFlowA]
  end;
end;
{$ELSE}
function TcQueryFlowA; external traffic_lib name 'TcQueryFlowA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcQueryFlowW: Pointer;

function TcQueryFlowW;
begin
  GetProcedureAddress(_TcQueryFlowW, traffic_lib, 'TcQueryFlowW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcQueryFlowW]
  end;
end;
{$ELSE}
function TcQueryFlowW; external traffic_lib name 'TcQueryFlowW';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcSetFlowA: Pointer;

function TcSetFlowA;
begin
  GetProcedureAddress(_TcSetFlowA, traffic_lib, 'TcSetFlowA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcSetFlowA]
  end;
end;
{$ELSE}
function TcSetFlowA; external traffic_lib name 'TcSetFlowA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcSetFlowW: Pointer;

function TcSetFlowW;
begin
  GetProcedureAddress(_TcSetFlowW, traffic_lib, 'TcSetFlowW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcSetFlowW]
  end;
end;
{$ELSE}
function TcSetFlowW; external traffic_lib name 'TcSetFlowW';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcAddFlow: Pointer;

function TcAddFlow;
begin
  GetProcedureAddress(_TcAddFlow, traffic_lib, 'TcAddFlow');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcAddFlow]
  end;
end;
{$ELSE}
function TcAddFlow; external traffic_lib name 'TcAddFlow';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcGetFlowNameA: Pointer;

function TcGetFlowNameA;
begin
  GetProcedureAddress(_TcGetFlowNameA, traffic_lib, 'TcGetFlowNameA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcGetFlowNameA]
  end;
end;
{$ELSE}
function TcGetFlowNameA; external traffic_lib name 'TcGetFlowNameA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcGetFlowNameW: Pointer;

function TcGetFlowNameW;
begin
  GetProcedureAddress(_TcGetFlowNameW, traffic_lib, 'TcGetFlowNameW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcGetFlowNameW]
  end;
end;
{$ELSE}
function TcGetFlowNameW; external traffic_lib name 'TcGetFlowNameW';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcModifyFlow: Pointer;

function TcModifyFlow;
begin
  GetProcedureAddress(_TcModifyFlow, traffic_lib, 'TcModifyFlow');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcModifyFlow]
  end;
end;
{$ELSE}
function TcModifyFlow; external traffic_lib name 'TcModifyFlow';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcAddFilter: Pointer;

function TcAddFilter;
begin
  GetProcedureAddress(_TcAddFilter, traffic_lib, 'TcAddFilter');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcAddFilter]
  end;
end;
{$ELSE}
function TcAddFilter; external traffic_lib name 'TcAddFilter';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcDeregisterClient: Pointer;

function TcDeregisterClient;
begin
  GetProcedureAddress(_TcDeregisterClient, traffic_lib, 'TcDeregisterClient');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcDeregisterClient]
  end;
end;
{$ELSE}
function TcDeregisterClient; external traffic_lib name 'TcDeregisterClient';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcDeleteFlow: Pointer;

function TcDeleteFlow;
begin
  GetProcedureAddress(_TcDeleteFlow, traffic_lib, 'TcDeleteFlow');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcDeleteFlow]
  end;
end;
{$ELSE}
function TcDeleteFlow; external traffic_lib name 'TcDeleteFlow';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcDeleteFilter: Pointer;

function TcDeleteFilter;
begin
  GetProcedureAddress(_TcDeleteFilter, traffic_lib, 'TcDeleteFilter');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcDeleteFilter]
  end;
end;
{$ELSE}
function TcDeleteFilter; external traffic_lib name 'TcDeleteFilter';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcEnumerateFlows: Pointer;

function TcEnumerateFlows;
begin
  GetProcedureAddress(_TcEnumerateFlows, traffic_lib, 'TcEnumerateFlows');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcEnumerateFlows]
  end;
end;
{$ELSE}
function TcEnumerateFlows; external traffic_lib name 'TcEnumerateFlows';
{$ENDIF DYNAMIC_LINK}

{$IFDEF UNICODE}


{$IFDEF DYNAMIC_LINK}
var
  _TcOpenInterface: Pointer;

function TcOpenInterface;
begin
  GetProcedureAddress(_TcOpenInterface, traffic_lib, 'TcOpenInterfaceW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcOpenInterface]
  end;
end;
{$ELSE}
function TcOpenInterface; external traffic_lib name 'TcOpenInterfaceW';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcQueryFlow: Pointer;

function TcQueryFlow;
begin
  GetProcedureAddress(_TcQueryFlow, traffic_lib, 'TcQueryFlowW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcQueryFlow]
  end;
end;
{$ELSE}
function TcQueryFlow; external traffic_lib name 'TcQueryFlowW';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcSetFlow: Pointer;

function TcSetFlow;
begin
  GetProcedureAddress(_TcSetFlow, traffic_lib, 'TcSetFlowW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcSetFlow]
  end;
end;
{$ELSE}
function TcSetFlow; external traffic_lib name 'TcSetFlowW';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcGetFlowName: Pointer;

function TcGetFlowName;
begin
  GetProcedureAddress(_TcGetFlowName, traffic_lib, 'TcGetFlowNameW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcGetFlowName]
  end;
end;
{$ELSE}
function TcGetFlowName; external traffic_lib name 'TcGetFlowNameW';
{$ENDIF DYNAMIC_LINK}

{$ELSE}


{$IFDEF DYNAMIC_LINK}
var
  _TcOpenInterface: Pointer;

function TcOpenInterface;
begin
  GetProcedureAddress(_TcOpenInterface, traffic_lib, 'TcOpenInterfaceA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcOpenInterface]
  end;
end;
{$ELSE}
function TcOpenInterface; external traffic_lib name 'TcOpenInterfaceA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcQueryFlow: Pointer;

function TcQueryFlow;
begin
  GetProcedureAddress(_TcQueryFlow, traffic_lib, 'TcQueryFlowA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcQueryFlow]
  end;
end;
{$ELSE}
function TcQueryFlow; external traffic_lib name 'TcQueryFlowA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcSetFlow: Pointer;

function TcSetFlow;
begin
  GetProcedureAddress(_TcSetFlow, traffic_lib, 'TcSetFlowA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcSetFlow]
  end;
end;
{$ELSE}
function TcSetFlow; external traffic_lib name 'TcSetFlowA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _TcGetFlowName: Pointer;

function TcGetFlowName;
begin
  GetProcedureAddress(_TcGetFlowName, traffic_lib, 'TcGetFlowNameA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_TcGetFlowName]
  end;
end;
{$ELSE}
function TcGetFlowName; external traffic_lib name 'TcGetFlowNameA';
{$ENDIF DYNAMIC_LINK}

{$ENDIF}

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -