Unterstützen von Teilinstanzvorgängen

Ein Anbieter muss keine Teilinstanzvorgänge unterstützen. Ein Anbieter muss jedoch entweder die gesamte Semantik eines Teilinstanzvorgangs unterstützen, eine vollständige Instanz verarbeiten oder WBEM_E_UNSUPPORTED_PARAMETER zurückgeben.

Beim Erstellen eines Anbieters, der Teilinstanzvorgänge unterstützt, müssen Sie die folgenden Regeln beachten:

  • Verwenden Sie dasselbe Kontextobjekt, das WMI an den Anbieter sendet. WMI verwendet den benannten Wert __GET_EXT_CLIENT_REQUEST, um Deadlocks zu verhindern, und entfernt diesen Client, bevor das Kontextobjekt an einen Anbieter weitergeleitet wird.
  • Für wiedereintrittsfähige Aufrufe zurück an WMI, die keinen Teilinstanzvorgang erfordern, stellen Sie sicher, dass dasselbe Kontextobjekt ohne Änderungen zurückgegeben wird. WMI empfängt das Kontextobjekt ohne den benannten __GET_EXT_CLIENT_REQUEST-Wertsatz und löscht alle benannten Werte, die Teilinstanzvorgängen zugeordnet sind, aus dem Kontextobjekt, bevor dieses an andere Anbieter übergeben wird. Wird das Kontextobjekt nicht geändert, können andere Anbieter keine Teilinstanz-Abrufvorgänge für ein anderes, nicht verknüpftes Objekt empfangen.
  • Wenn Sie beim Ausführen einer Anforderung einen wiedereintrittsfähigen Teilinstanzvorgang durchführen möchten, legen Sie den fehlenden benannten Wert __GET_EXT_CLIENT_REQUEST und die Eigenschaft „clear“ fest. Optional können Sie die Eigenschaften im benannten Wert __GET_EXT_PROPERTIES ändern, bevor Sie das Kontextobjekt mit dem wiedereintrittsfähigen Aufruf zurück an WMI senden.
  • Greifen Sie nicht auf das Kontextobjekt zu, nachdem Sie es während eines wiedereintrittsfähigen Aufrufs an WMI zurückgegeben haben. Andere Anbieter können die Eigenschaftenlisten oder andere Werte während des Wiedereintritts ändern. Sie können das Kontextobjekt nur für die Dauer des von Ihnen implementierten IWbemServices-Aufrufs untersuchen oder ändern.