Implementace a registrace dodavatele portů
Role dodavatele portů je sledovat a dodávat porty, které zase spravují procesy. Když je potřeba vytvořit port, vytvoří se instance dodavatele portu pomocí coCreate s identifikátorem GUID dodavatele portu (správce ladění relace [SDM] použije dodavatele portu, kterého uživatel vybral, nebo dodavatele portu určeného systémem projektu). SDM pak volá CanAddPort zjistit, jestli je možné přidat nějaké porty. Pokud je možné přidat port, je nový port vyžádán voláním AddPort a předáním IDebugPortRequest2, který popisuje port.
AddPort
vrátí nový port reprezentovaný rozhraním IDebugPort2.
Diskuse
Port je vytvořen dodavatelem portu, který je přidružený k počítači nebo ladicímu serveru. Server vytvoří výčet svých dodavatelů portů prostřednictvím metody EnumPortSuppliers a dodavatel portu vytvoří výčet svých portů prostřednictvím metody EnumPorts.
Kromě typické registrace v modelu COM se dodavatel portů musí zaregistrovat ve Visual Studiu tím, že umístí svůj CLSID a název do konkrétních umístění v registru. Pomocná funkce ladicí sady SDK s názvem SetMetric
zpracovává tuto úlohu: volá se jednou pro každou položku, která se má zaregistrovat, takto:
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);
Poskytovatel portu zruší svou registraci voláním funkce RemoveMetric
(další pomocná funkce SDK pro ladění) jednou pro každou zaregistrovanou položku.
RemoveMetric(metrictypePortSupplier,
<GUID of your port supplier>,
metricCLSID,
NULL);
RemoveMetric(metrictypePortSupplier,
<GUID of your port supplier>,
metricName,
NULL);
Poznámka
Pomocné rutiny sady SDK pro laděníSetMetric
a RemoveMetric
jsou statické funkce definované v dbgmetric.h a kompilovány do ad2de.lib. Pomocníci metrictypePortSupplier
, metricCLSID
a metricName
jsou také definováni v dbgmetric.h.
Dodavatel portu může zadat svůj název a identifikátor GUID prostřednictvím metod GetPortSupplierName a GetPortSupplierId, v uvedeném pořadí.
Související obsah
- Implementovat dodavatele portů
- Pomocné nástroje sady SDK pro ladění
- dodavatelé portů