Sdílet prostřednictvím


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 zavolá CanAddPort a zjistí, jestli je možné přidat nějaké porty. Pokud je možné přidat port, je požadován nový port voláním AddPort a jeho předáním IDebugPortRequest2 popisující 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 dodavatelů portů prostřednictvím metody EnumPortSuppliers a dodavatel portu vytvoří výčet svých portů metodou EnumPorts .

Kromě typické registrace modelu COM se dodavatel portů musí zaregistrovat v sadě Visual Studio tak, že umístí jeho CLSID a název do konkrétních umístění registru. Pomocná funkce sady SDK pro ladění s názvem SetMetric zpracovává tuto činnost: volá se jednou pro každou položku, která se má zaregistrovat, a proto:

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);

Dodavatel portu zruší registraci sám voláním RemoveMetric (další pomocné funkce sady SDK ladění) jednou pro každou zaregistrovanou položku, a proto:

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 kompilované do ad2de.lib. Objekty metrictypePortSupplier, metricCLSIDa metricName pomocné rutiny jsou také definovány v dbgmetric.h.

Dodavatel portu může zadat svůj název a identifikátor GUID prostřednictvím metod GetPortSupplierName a GetPortSupplierId.