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 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, metricCLSIDa 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í.