📄 jwatraffic.pas
字号:
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 + -