Добрый день, внедрил dll в нужный процесс для анализа трафика, установил хук на функцию Send чтобы контролировать передающиеся пакеты,
Код:
var
TwsSend: function(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
HookProc('WS2_32.dll', 'send', @NewSend, @TwsSend);
function NewSend(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
begin
if blockpacket
then result:=-1
else
Result := TwsSend(s, Buf, len, flags);
end;
Вот если я задам blockpacket:=true и процесс выполнит передачу пакетов то они блокируются и не передаются на сервер как нужно, но после этого если установлю blockpacket:=false то все эти блокированные пакеты разом передаются на сервер, получается блокированные пакеты накапливались и потом отправились одним пакетом, каким образом можно очистить эту очередь или правильно отменять их, чтобы запретить так запретить отправку пакетов когда blockpacket=true.