SWbemServices. ExecQueryAsync, méthode

La méthode ExecQueryAsync de l’objet SWbemServices exécute une requête pour récupérer des objets. L’appel à cette méthode retourne immédiatement, et les résultats et l’État sont retournés à l’appelant via des événements remis au récepteur spécifié dans objWbemSink. Pour gérer chaque objet retourné, créez un objWbemSink. Sous-routine d’événement OnObjectReady .

La méthode est appelée en mode asynchrone. Pour plus d’informations, consultez appel d’une méthode.

Pour une explication de cette syntaxe, consultez conventions de document pour l’API de script.

Syntaxe

objWbemObjectSet = .ExecQueryAsync( _
  [ ByVal objWbemSink ], _
  ByVal strQuery, _
  [ ByVal strQueryLanguage ], _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ], _
  [ ByVal objWbemAsyncContext ] _
)

Paramètres

objWbemSink [ facultatif]

Récepteur d’objets qui exécute la requête de façon asynchrone. Créez un objet SWbemSink pour recevoir les objets.

strQuery

Obligatoire. Chaîne qui contient le texte de la requête. Ce paramètre ne peut pas être vide. Pour plus d’informations sur la création de chaînes de requête WMI, consultez interrogation avec WQL et la référence WQL .

strQueryLanguage [ facultatif]

Chaîne qui contient le langage de requête à utiliser. S’il est spécifié, la valeur doit être « WQL ».

IFlags [ facultatif]

Entier qui détermine le comportement de la requête. Ce paramètre peut accepter les valeurs suivantes.

wbemFlagSendStatus * * * * (128 (0x80))

Fait en sorte que les appels asynchrones envoient des mises à jour d’État au gestionnaire d’événements OnProgress pour le récepteur d’objets.

wbemFlagDontSendStatus * * * * (0 (0x0))

Empêche les appels asynchrones d’envoyer des mises à jour d’État au gestionnaire d’événements OnProgress pour le récepteur d’objets.

wbemQueryFlagPrototype * * * * (2 (0X2))

Utilisé pour un prototype. Elle empêche la requête de se produire et retourne à la place un objet qui ressemble à un objet de résultat standard.

wbemFlagUseAmendedQualifiers * * * * (131072 (0x20000))

Fait en sorte que WMI retourne des données de modification de classe avec la définition de classe de base. Pour plus d’informations, consultez localisation des informations de classe WMI.

objwbemNamedValueSet [ facultatif]

En général, ce n’est pas défini. Dans le cas contraire, il s’agit d’un objet SWbemNamedValueSet dont les éléments représentent les informations de contexte qui peuvent être utilisées par le fournisseur qui sert la demande. Un fournisseur qui prend en charge ou requiert des informations de contexte doit documenter les noms de valeur reconnus, le type de données de la valeur, les valeurs autorisées et la sémantique.

objWbemAsyncContext [ facultatif]

Objet SWbemNamedValueSet qui retourne au récepteur d’objets pour identifier la source de l’appel asynchrone d’origine. Utilisez ce paramètre pour effectuer plusieurs appels asynchrones à l’aide du même récepteur d’objets. Pour utiliser ce paramètre, créez un objet SWbemNamedValueSet et utilisez la méthode SWbemNamedValueSet. Add pour ajouter une valeur qui identifie l’appel asynchrone que vous effectuez. Cet objet SWbemNamedValueSet est retourné au récepteur d’objets et la source de l’appel peut être extraite à l’aide de la méthode SWbemNamedValueSet. Item . Pour plus d’informations, consultez appel d’une méthode.

Valeur de retour

Cette méthode n’a pas de valeur de retour. En cas de réussite, le récepteur reçoit un événement OnObjectReady par instance. Après la dernière instance, le récepteur d’objets reçoit un événement OnCompleted .

Codes d’erreur

À la fin de la méthode ExecQueryAsync , l’objet Err peut contenir l’un des codes d’erreur répertoriés dans la liste suivante.

wbemErrAccessDenied -2147749891 (0x80041003)

L’utilisateur actuel n’a pas l’autorisation d’afficher le jeu de résultats.

wbemErrFailed -2147749889 (0x80041001)

Erreur non spécifiée.

wbemErrInvalidParameter -2147749896 (0x80041008)

Un paramètre non valide a été spécifié.

wbemErrInvalidQuery -2147749911 (0x80041017)

La syntaxe de la requête n’est pas valide.

wbemErrInvalidQueryType -2147749912 (0x80041018)

Le langage de requête demandé n’est pas pris en charge.

wbemErrOutOfMemory -2147749894 (0x80041006)

Mémoire insuffisante pour terminer l’opération.

Notes

Cet appel est retourné immédiatement. Les objets et l’État demandés sont retournés à l’appelant via des rappels remis au récepteur spécifié dans objWbemSink. Pour traiter chaque objet lorsqu’il retourne, créez un objWbemSink. Sous-routine d’événement OnObjectReady . Une fois que tous les objets sont retournés, effectuez le traitement final dans votre implémentation de objWbemSink. Événement OnCompleted .

Un rappel asynchrone permet à un utilisateur non authentifié de fournir des données au récepteur. Cela pose des risques de sécurité pour vos scripts et vos applications. Pour éliminer les risques, consultez définition de la sécurité sur un appel asynchrone

La méthode ExecQueryAsync retourne un jeu de résultats vide lorsqu’aucun objet ne correspond aux critères de la requête. Cette méthode retourne les propriétés de clé, que la propriété de clé soit demandée ou non dans le paramètre strQuery .

Il existe des limites concernant le nombre de mots clés and et or qui peuvent être utilisés dans les requêtes WQL. Un grand nombre de mots clés WQL utilisés dans une requête complexe peut faire en sorte que WMI retourne le _ code d’erreur de violation de quota E WBEM _ _ en tant que valeur HRESULT . La limite des mots clés WQL dépend de la complexité de la requête.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
En-tête
Wbemdisp. h
Bibliothèque de types
Wbemdisp. tlb
DLL
Wbemdisp.dll
CLSID
CLSID _ SWbemServices
IID
IID _ ISWbemServices

Voir aussi

M

Appel d’une méthode

SWbemServices.