API du moteur d'analyse des virus
Dernière modification : mercredi 15 août 2012
S’applique à : SharePoint Foundation 2010
Dans cet article
IMso_VirusScanner, interface
Initialize, méthode
Scan, méthode
Clean, méthode
ILockBytes, interface
Notes
L’API du moteur d’analyse antivirus est obsolète dans Microsoft SharePoint Foundation. Cette API existe toujours dans SharePoint Foundation pour la rétrocompatibilité.
Cette rubrique décrit l'API requise pour la construction d'un moteur d'analyse des virus (VSE) pour l'analyse et le nettoyage des documents dans Windows SharePoint Services 3.0. Pour obtenir une présentation générale du VSE et de sa configuration minimale requise, voir Présentation : implémentation de l'API du moteur d'analyse antivirus.
IMso_VirusScanner, interface
Le tableau suivant décrit les méthodes fournies par l'interface IMso_VirusScanner.
Méthode |
Description |
---|---|
Initialize |
Effectue l'initialisation par instance de l'analyseur et renvoie des informations sur l'instance IMso_VirusScanner active. |
Scan |
Analyse le contenu du flux et renvoie l'état d'infection et les informations sur le virus, le cas échéant. |
Clean |
Tente de supprimer toute infection virale du contenu. |
Notes
L'application hôte instancie un objet IMso_VirusScanner et effectue les tâches suivantes :
Instancie l'antivirus en tant que INPROC_SERVER dans un cloisonnement sans thread.
Appelle la méthode Initialize avant d'appeler toute autre méthode.
Vérifie qu'il n'y a aucune requête Scan en suspens avant d'appeler Release.
Effectue des appels simultanés à Scan ou Clean à partir de plusieurs threads une fois la méthode Initialize terminée et avant d'appeler Release.
Le scanneur compatible est une instance de l'interface IMso_VirusScanner et effectue les tâches suivantes :
Toutes les initialisations et allocations de ressources par le biais de la méthode Initialize.
Aucun appel vers des API de système d'exploitation avec des heures d'achèvement incertaines au moment de l'analyse ou du nettoyage. Parmi les différents exemples, citons les E/S de fichier et la manipulation du Registre.
Initialize, méthode
Effectue l'initialisation par instance de l'analyseur et renvoie des informations sur l'instance IMso_VirusScanner active.
Syntaxe
STDMETHOD Initialize (
BSTR *pbstrProduct,
DWORD *pdwProductVersion
);
Paramètres
Paramètre |
Description |
---|---|
pbstrProduct [OUT] |
Spécifie l'adresse de la variable qui reçoit une chaîne identifiant l'application du fournisseur, comme dans « Microsoft Office Word 2007 (12.2627.2625) ». |
pdwProductVersion [OUT] |
Spécifie l'adresse de la variable qui reçoit la version du fichier de signature que le logiciel d'analyse utilise actuellement. |
Valeur de retour
Réussite : renvoie S_OK si l'initialisation a réussi.
Échec : renvoie un code d'erreur.
Notes
Cette méthode doit être appelée une seule fois par instance IMso_VirusScanner, immédiatement après la création de l'instance et avant d'appeler la méthode Scan ou Clean.
Scan, méthode
Analyse le contenu et renvoie l'état d'infection et les informations sur le virus, le cas échéant.
Syntaxe
STDMETHOD Scan (
ILockBytes *pilb,
DWORD *pdwStatus,
BSTR *pbstrVirusInfo
);
Paramètres
Paramètre |
Description |
---|---|
pilb [IN] |
Un objet contenant le contenu qui doit être analysé. Cet objet contient des informations concernant le nom de fichier et le type de fichier. |
pdwStatus [OUT] |
Spécifie l'adresse de la variable qui reçoit l'état d'infection du contenu. |
pbstrVirusInfo [OUT] |
Spécifie l'adresse de la variable qui reçoit une chaîne contenant les informations relatives au virus, si le contenu est infecté. Si l'analyseur détecte plusieurs virus, il doit concaténer les chaînes et les délimiter avec le caractère de tabulation (ASCII 9). |
L'hôte libère la valeur renvoyée à l'aide de la fonction SysFreeString.
Valeur de retour
Réussite : renvoie S_OK si l'opération a réussi et les paramètes pdwStatus et pbstrVirusInfo contiennent des informations valides.
Échec : renvoie un code d'erreur.
Notes
L'hôte appelle cette méthode à partir de plusieurs threads simultanément. Le scanneur est supposé effectuer les demandes simultanément sans sérialisation interne des demandes.
Clean, méthode
Tente de supprimer l'infection du contenu.
Syntaxe
STDMETHOD Clean (
ILockBytes *pilbInput,
ILockBytes *pilbOutput,
DWORD *pdwStatus,
BSTR *pbstrVirusInfo
);
Paramètres
Paramètre |
Description |
---|---|
pilbInput [IN] |
Un objet contenant le contenu qui doit être réparé. Cet objet contient des informations concernant le nom de fichier et le type de fichier. |
pilbOutput [IN] |
Un objet qui reçoit les données réparées. Au moment de l'appel de la méthode, les contenus de pilbInput et de pilbOutput sont identiques, l'analyseur doit donc optimiser les opérations d'E/S si possible. |
pdwStatus [OUT] |
Spécifie l'adresse de la variable qui reçoit l'état d'infection du contenu. |
pbstrVirusInfo [OUT] |
Spécifie l'adresse de la variable qui reçoit une chaîne contenant les informations relatives au virus, si le contenu est infecté. Si l'analyseur détecte plusieurs virus, il doit concaténer les chaînes jusqu'à atteindre la longueur de la mémoire tampon en les délimitant avec le caractère de tabulation (ASCII 9). |
L'hôte libère la valeur renvoyée à l'aide de la fonction SysFreeString.
Valeur de retour
Réussite : renvoie S_OK si l'opération a réussi et les paramètres pdwStatus, wzVirusInfo et pilbOutput contiennent des informations valides.
Notes
L'hôte appelle cette méthode à partir de plusieurs threads simultanément. Le scanneur est supposé effectuer les demandes simultanément sans sérialisation interne des demandes.
ILockBytes, interface
L'interface ILockBytes est exposée pour permettre au fournisseur d'extraire des informations supplémentaires sur le fichier, lesquelles peuvent inclure le nom du fichier, son type, sa taille, etc. Pour obtenir une description complète de cette interface sur MSDN, voir ILockBytes.
Syntaxe
typedef struct tagSTATSTG {
LPWSTR pwcsName;
DWORD type;
ULARGE_INTEGER cbSize;
FILETIME mtime;
FILETIME ctime;
FILETIME atime;
DWORD grfMode;
DWORD grfLocksSupported;
CLSID clsid;
DWORD grfStateBits;
DWORD reserved;
} STATSTG;
Membres
Membre |
Description |
---|---|
pwcsName |
Un pointeur vers une chaîne Unicode terminée par NULL contenant le nom. L'espace réservé à cette chaîne est alloué par la méthode appelée et libéré par l'appelant, comme avec la fonction COM CoTaskMemFree. Vous pouvez spécifier de ne pas renvoyer ce membre en indiquant la valeur STATFLAG_NONAME lorsque vous appelez une méthode qui renvoie une structure STATSTG, sauf pour les appels de la méthode IEnumSTATSTG::Next, qui ne permet pas de définir cette valeur. |
type |
Indique le type d'objet de stockage, qui peut être l'une des valeurs de l'énumération STGTY. |
cbSize |
Spécifie la taille en octets du flux ou tableau d'octets. |
mtime |
Indique l'heure de la dernière modification de ce stockage, flux ou tableau d'octets. |
ctime |
Indique l'heure de création de ce stockage, flux ou tableau d'octets. |
atime |
Indique l'heure du dernier accès à ce stockage, flux ou tableau d'octets. |
grfMode |
Indique le mode d'accès spécifié lorsque l'objet a été ouvert. Ce membre est valide uniquement dans les appels aux méthodes Stat. |
grfLocksSupported |
Indique les types de verrouillage de région pris en charge par le flux ou le tableau d'octets, qui peuvent être une valeur de l'énumération LOCKTYPE. Ce membre n'est pas utilisé pour les objets de stockage. |
clsid |
Indique l'identificateur de classe pour l'objet de stockage ; la valeur est CLSID_NULL pour les nouveaux objets de stockage. Ce membre n'est pas utilisé pour les flux ou les tableaux d'octets. |
grfStateBits |
Indique les bits d'état actuels de l'objet de stockage ; autrement dit, la valeur définie le plus récemment par la méthode IStorage::SetStateBits. Ce membre n'est pas valide pour les flux ou les tableaux d'octets. |
reserved |
Réservé à une utilisation future. |