Tengo un fragmento de código que intenta escribir en el disco muchos archivos en un segundo. Sin embargo, no logra una mueca de dolor He instalado Kaspersky Anrivirus 2011.Programas Delphi bloqueados por Kaspersky Antivirus. Necesita workarround
Stream:= TFileStream.Create(sName, fmCreate);
El código totalmente trabajó con Kaspersky 2010 y también trabaja con Kaspersky 2011 si desactivo sus escáneres (que no puede ser totalmente descargado de la memoria - a menos que se desinstala) El código también funciona si (Kaspersky 2011 se está ejecutando y) escribo en el disco slooooowly. Por lo tanto, obviamente no es lo suficientemente rápido para manejar mis solicitudes de disco.
El error que obtengo es EFCreateError ('No se puede crear el archivo xxx blablabla'). El error es aleatorio. La mayoría de los archivos están escritos en el disco. Alrededor del 10% falla
He tratado de obtener soporte pero es imposible encontrar una persona real en Kaspersky con la que hablar. Su llamado 'soporte' es en realidad una base de datos de preguntas frecuentes. Por supuesto, habla sobre cómo instalar el producto y cosas relacionadas. No hay nada sobre problemas relacionados con la programación. ¿Algunas ideas?
PD: ¡esto tiene repercusiones para toda la comunidad Delphi! Todos nuestros clientes no podrán usar el software Delphi si están utilizando KIS 2011 como antivirus. Por el momento recomiendo a mis usuarios que desactiven su antivirus, pero necesito una solución real.
Será bueno si una persona con KIS 2011 puede confirmar el problema. Simplemente cree un pequeño programa que escriba 200 archivos pequeños en el disco usando TFileStream.
ACTUALIZACIÓN:
- aparece el problema sólo cuando el archivo no existe y se crea (creada en oposición a sobrescrito).
- informe similar: https://forums.embarcadero.com/thread.jspa?threadID=32751&tstart=15
- informe similar: http://forum.kaspersky.com/index.php?showtopic=120561
- Una posible solución que apareció en mi mente es detectar si KIS se está ejecutando y si lo es, para poner un retraso después de cada escritura en disco. O al menos, informe al usuario que puede haber problemas. ¿Alguien sabe cómo detectar si un servicio se está ejecutando?
- Agregué un retraso de 650ms (después de cada creación de archivo) y el error todavía está allí). Por lo tanto, no se trata de la rapidez con la que escribe en el disco, sino de la cantidad de archivos que escribe.
- Acaba de desinstalar KIS 2011. El problema ya no aparece.
- Acaba de reinstalar el antiguo y bueno KIS 2010. El error todavía está presente, pero aparece raramente (aproximadamente cada 300 archivos en lugar de aproximadamente 30 como en KIS 2011).
- El problema se confirmó en una segunda computadora.
- NOTICIAS: El bloqueo aparece en TFileStream. Sin embargo, puede deberse a una función llamada anteriormente: TestWriteAccess. Si desactivo esta función, el TFileStream.Create ya no falla. Bueno, esto no cambia demasiado las cosas. No importa qué línea de código genere el error, el programa aún falla (al azar) para escribir archivos en el disco mientras se ejecuta Kaspersky.
- Todavía estoy esperando una respuesta de una persona real de Kaspersky ...
- respuestas más automatizado recibido de soporte de Kaspersky (I envían correos electrónicos a apoyar en varios países). Todo apunta a una base de datos de preguntas frecuentes.
- Cambio mi estado del usuario de Kaspersky (y del cliente) a Kaspersky porque finalmente recibí una respuesta de una persona real del soporte de Kaspersky: cito "¿Está de acuerdo con solo un montón de tonterías? Met vriendelijke groeten, Kaspersky Lab BV Papendorpseweg 77-79 ". Kaspersky puede ser una compañía pirata. No quieren contestar los correos electrónicos porque saben que su producto está demasiado defectuoso para ser reparado.
Para probar el código, intente usar el código en un bucle, para crear 1000 archivos. El programa crea un grupo de archivos (número aleatorio) y falla en StreamFile: = TFileStream.Create. Actualización: El problema se puede solucionar ingresando un pequeño retraso después de crear cada archivo.
https://docs.google.com/forms/d/1H3_O1z1iEqfh9ZT9u3B0R1tGEj-Hc9o7rAE0LKPr33Y
2013 Actualización
A partir de esta tarde (después de una actualización) Kis conflictos con Delphi. Cada vez que compilo un proyecto, KIS aumenta al 100% la utilización de la CPU. Tendré que desinstalarlo.
Delphi 7, Windows 7 (32), KIS 2011
Pregunta: ¿tiene algún dato que sugiera que este problema es específico de las aplicaciones escritas por Delphi, en lugar de ser un problema general con KIS2011? – PhiS
Quizás este problema no solo afecte a los usuarios de Delphi: ¿ha probado otros lenguajes de programación/compiladores (C, C++, C#, Java)? Un problema que afectaría prácticamente a todos los desarrolladores de software podría llamar más la atención. Su pregunta también podría usar etiquetas para estos compiladores para aumentar la visibilidad ... – mjn
Lo siento. Solo tengo Delphi. PERO, si alguien más puede compilar un pequeño programa que crea 1000 archivos de texto (ponga solo 100 bytes en cada archivo), lo probaré en mi computadora. Pero usa algo similar a TFileStream. – Ampere