Оказывается, это обертка над CreateRemoteThread, а в последней содержатся следующие функции:
RtlImageNtHeader
NtCreateThread (видимо, основная)
NtQueryInformationThread
RtlQueryInformationActivationContext
CsrClientCallServer
NtResumeThread
RtlActivateActivationContextEx
GetModuleHandleA
GetProcAddress
Очень много всякой всячины, которая, видимо, и тормозит...
RtlImageNtHeader, GetModuleHandleA и QueryInformation всякие - не понимаю, зачем нужны.
Чистый вызов через NtCreateThread - это хорошая или плохая затея? Наверное, плохая (RtlActivateActivationContextEx - думаю, нужно зачем-то)?
А вот еще, оказывается, есть какая-то функция RtlCreateUserThread...
И в ней содержатся такие:
NtQuerySystemInformation
RtlImageNtHeader
NtAllocateVirtualMemory
RtlInitializeContext
NtCreateThread
Вроде, поменьше внутренних функций. Ну RtlInitializeContext в ней, наверное нужная вещь...
Создание потока через RtlCreateUserThread - хорошая идея или нет? Или нестабильно будет работать?
Главная затея - чтобы быстродействие повысить. Скорость, скорость, скорость...
The Trick писал(а):При чем вообще Interlocked-функции?
Про них Хакер сказал...
The Trick писал(а):просто пиши обработчик окна в модуле
То есть, это нужно сабклассить созданное (через CreateWindowEx) окно, правильно понимаю?
Это будет быстрее, чем механизм RaiseEvent?
The Trick писал(а):замапить массив на RWE память
Не знаю, зачем делать именно через замапивание... Хакер считает, что для вставок лучше всего память из хипа выделять, и я именно так делаю.
The Trick писал(а):Ассемблерную вставку править.
Просто ее зациклить от начала до конца, а также убрать подпроцедуру CLEAR, правильно думаю?