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.
Die Rolle eines Portanbieters besteht darin, Ports nachzuverfolgen und zu liefern, die wiederum Prozesse verwalten. Wenn ein Port erstellt werden muss, wird der Portanbieter mithilfe von CoCreate mit der GUID des Portanbieters instanziiert (der Sitzungsdebug-Manager [SDM] verwendet den Vom Benutzer ausgewählten Portanbieter oder den vom Projektsystem angegebenen Portanbieter). Anschließend ruft das SDM CanAddPort auf, um zu prüfen, ob Ports hinzugefügt werden können. Wenn ein Port hinzugefügt werden kann, wird ein neuer Port angefordert, indem AddPort aufgerufen und ein IDebugPortRequest2 übergeben wird, das den Port beschreibt.
AddPort gibt einen neuen Port zurück, der durch eine IDebugPort2--Schnittstelle dargestellt wird.
Diskussion
Ein Port wird von einem Portanbieter erstellt, der einem Computer oder Debugserver zugeordnet ist. Ein Server listet seine Portanbieter über die EnumPortSuppliers Methode auf, und ein Portanbieter listet seine Ports über die EnumPorts--Methode auf.
Zusätzlich zur typischen COM-Registrierung muss sich ein Portanbieter bei Visual Studio registrieren, indem er seine CLSID und seinen Namen an bestimmten Registrierungsspeicherorten platziert. Eine Debugging SDK-Hilfsfunktion namens SetMetric behandelt diese Aufgabe: Sie wird einmal aufgerufen, damit jedes Element registriert werden kann:
SetMetric(metrictypePortSupplier,
<GUID of your port supplier>,
metricCLSID,
<CLSID of your port supplier>,
false,
NULL)
SetMetric(metrictypePortSupplier,
<GUID of your port supplier>,
metricName,
<name of your port supplier>,
false,
NULL);
Ein Portanbieter hebt die Registrierung selbst auf, indem er RemoveMetric (eine andere Debug SDK-Hilfsfunktion) einmal für jedes element aufruft, das registriert wurde, also:
RemoveMetric(metrictypePortSupplier,
<GUID of your port supplier>,
metricCLSID,
NULL);
RemoveMetric(metrictypePortSupplier,
<GUID of your port supplier>,
metricName,
NULL);
Anmerkung
Die SDK-Hilfsprogramme zum Debuggen vonSetMetric und RemoveMetric sind statische Funktionen, die in dbgmetric.h definiert und in ad2de.libkompiliert werden. Die Hilfsprogramme metrictypePortSupplier, metricCLSID und metricName sind ebenfalls in dbgmetric.h definiert.
Ein Portanbieter kann seinen Namen und seine GUID über die Methoden GetPortSupplierName und GetPortSupplierIdangeben.