Condividi tramite


Distribuzione e la registrazione di un fornitore di porte

Il ruolo di un fornitore di porte è gli hole della modalità e di rilevare, che a sua volta gestiscono i processi. Quindi una porta deve essere creata, il fornitore di porte viene creata un'istanza utilizzando CoCreate con il GUID del fornitore di porte (la sessione l'amministratore di debug che [SDM] utilizzerà il fornitore di porte l'utente selezionato o il fornitore di porte specificato dal sistema del progetto). Lo SDM chiamerà IDebugPortSupplier2:: CanAddPort per vedere se le porte è possibile aggiungere. Se una porta è possibile aggiungere, una nuova porta è necessaria chiamandola IDebugPortSupplier2:: AddPort e passando IDebugPortRequest2 che descrive la porta. AddPort restituirà una nuova porta rappresentata IDebugPort2 da un'interfaccia.

Descrizione

Una porta viene creata da un fornitore di porte, che è a sua volta associato a un computer o un server di debug. Un server può enumerare i fornitori di porte conIDebugCoreServer2:: EnumPortSuppliers il metodo e un fornitore di porte possibile enumerare le porte dal IDebugPortSupplier2:: EnumPorts metodo.

Oltre alla registrazione tipica COM, un fornitore di porte necessario registrarsi con Visual Studio inserendo il relativo CLSID e nome in percorsi specifici del Registro di sistema. Un debug l'sdk SetMetric chiamato funzione di supporto che gestisce questo lavoretto: viene chiamato una volta per ciascun elemento venga registrato, nel modo seguente:

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

Un fornitore di porte si annulla la registrazione chiamando RemoveMetric (un'altra funzione di supporto di debug SDK) una volta per ogni elemento che è stato registrato, nel modo seguente:

RemoveMetric(metrictypePortSupplier,
             <GUID of your port supplier>,
             metricCLSID,
             NULL);
RemoveMetric(metrictypePortSupplier,
             <GUID of your port supplier>,
             metricName,
             NULL);

Nota

Supporto di SDK per il debugSetMetric e RemoveMetric sono funzioni statiche definite in dbgmetric.h e compilate in ad2de.lib.metrictypePortSupplier, metricCLSIDe gli helpermetricName vengono inoltre definiti in dbgmetric.h.

Un fornitore di porte possibile fornire il nome e GUID dai metodi IDebugPortSupplier2:: GetPortSupplierName e IDebugPortSupplier2:: GetPortSupplierId, rispettivamente.

Vedere anche

Riferimenti

Supporto di SDK per il debug

Concetti

fornitori di porte

Altre risorse

implementare un fornitore di porte