Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Jedes Mal, wenn ein Ressourcenspender eine Ressource vom Halter zuweist, erfolgt Folgendes:
Der Ressourcenspender deklariert einen Ressourcentypbezeichner (RESTYPID), der den erforderlichen Ressourcentyp beschreibt.
Der Ressourcenspender ruft die IHolder::AllocResource Methode des Inhabers auf und übergibt diese RESTYPID-.
Der Inhaber generiert eine Kandidatenliste aus den verfügbaren Ressourcen. Kandidaten sind Ressourcen, die entweder nicht in einer Transaktion aufgelistet oder bereits in der Transaktion des aufrufenden Objekts aufgelistet sind.
Diese Kandidaten werden einzeln an die IDispenserDriver::RateResource Methode übergeben, bei der sie bewertet werden (auf einer Skala von 0 bis 100), indem die Kandidatenressource mit der gewünschten RESTYPIDübereinstimmt.
Der Inhaber wählt die Ressource aus, die der Ressourcenspender als höchste Rate angibt.
Der Ressourcenspender kann die Bewertungsschleife frühzeitig beenden, indem er dem Kandidaten eine Ressourcenbewertung von 100 (eine perfekte Anpassung) zuweist. Eine Bewertung von 100 wäre normalerweise für kandidatenfähige Ressourcen reserviert, die bereits ordnungsgemäß aufgelistet sind, es sei denn, der Ressourcenspender gelangt zu dem Schluss, dass die Einlistung ein preiswerter Vorgang ist. Wenn alle Kandidatenressourcen (falls vorhanden) mit 0 (nicht verwendbar) bewertet werden, wird eine neue Ressource durch Aufrufen von IDispenserDriver::CreateResourceerstellt.
Wenn die zuvor ausgewählte Ressource nicht bereits in der Transaktion des aufrufenden Objekts aufgeführt ist, wird die IDispenserDriver::EnlistResource--Methode des Ressourcenspenders aufgerufen.
Der AllocResource Methodenaufruf wird an den Ressourcenspender mit der aufgelisteten Ressource zurückgegeben.
Verwandte Themen