Интерфейс сканирования на наличие вредоносных программ Windows (AMSI) содержит абстракции, которые можно использовать для вызова текущего активного антивирусного сканера в Windows:
https://docs.microsoft.com/en-us/windows/desktop/amsi/antimalware-scan-interface-functions
Существует 2 метода, связанных с инициализацией:
- AmsiInitialize
- AmsiUninitialize
AmsiInitialize возвращает " Дескриптор типа HAMSICONTEXT, который должен быть передан всем последующим вызовам AMSI API. ".
После завершения инициализации я могу использовать AmsiScanBuffer для сканирования буфера на наличие вредоносных программ.
Мой вопрос:
Можно ли использовать один и тот же контекст одновременно смного потоков в моем приложении, или мне нужно создать один поток для каждого потока, из которого я собираюсь вызывать методы?
Читая документацию, для AsmiUnitialize мне сообщают, что Когда приложениеЗакончив с AMSI API, он должен вызвать AmsiUninitialize. .Это говорит мне о том, что контекст может использоваться для многих вызовов, но ничего не говорит о безопасности потоков или параллелизме.