Freigeben über


ICorProfilerInfo3::GetModuleInfo2-Methode

Gibt bei vorhandener Modul-ID den Dateinamen des Moduls und die ID der übergeordneten Assembly des Moduls sowie eine Bitmaske zurück, die die Moduleigenschaften beschreibt.

HRESULT GetModuleInfo2(
    [in]  ModuleID   moduleId,
    [out] LPCBYTE    *ppBaseLoadAddress,
    [in]  ULONG      cchName,
    [out] ULONG      *pcchName,
    [out, annotation("__out_ecount_part(cchName, *pcchName)")]
          WCHAR      szName[] ,
    [out] AssemblyID *pAssemblyId);
    [out] DWORD                 *pdwModuleFlags);

Parameter

  • moduleId
    [in] Die ID des Moduls, für das Informationen abgerufen werden sollen.

  • ppBaseLoadAddress
    [out] Die Basisadresse, an der das Modul geladen wird.

  • cchName
    [in] Die Länge des szName-Rückgabepuffers in Zeichen.

  • pcchName
    [out] Ein Zeiger auf die gesamte Zeichenlänge des zurückgegebenen Dateinamens des Moduls.

  • szName
    [out] Ein vom Aufrufer bereitgestellter Breitzeichenpuffer. Bei der Rückgabe dieser Methode enthält der Puffer den Dateinamen des Moduls.

  • pAssemblyId
    [out] Ein Zeiger auf die ID der übergeordneten Assembly des Moduls.

  • pdwModuleFlags
    [out] Eine Bitmaske der Werte der COR_PRF_MODULE_FLAGS-Enumeration, die die Eigenschaften des Moduls angibt.

Hinweise

Bei dynamischen Modulen ist der szName-Parameter der Metadatenname des Moduls, und die Basisadresse ist 0 (null). Der Metadatenname ist der Wert in der Namensspalte von der Modultabelle in Metadaten. Dies wird auch als Module.ScopeName-Eigenschaft für verwalteten Code und als szName-Parameter der IMetaDataImport::GetScopeProps-Methode für nicht verwalteten Metadaten-Clientcode verfügbar gemacht.

Obwohl die GetModuleInfo2-Methode aufgerufen werden kann, sobald die Modul-ID vorhanden ist, ist die ID der übergeordneten Assembly erst verfügbar, wenn der Profiler den ICorProfilerCallback::ModuleAttachedToAssembly-Rückruf empfängt.

Sobald GetModuleInfo2 zurückgegeben wurde, müssen Sie überprüfen, ob der szName-Puffer groß genug war, um den vollständigen Dateinamen des Moduls aufzunehmen. Vergleichen Sie hierzu den Wert, auf den pcchName verweist, mit dem Wert des cchName-Parameters. Wenn pcchName auf einen Wert verweist, der größer als cchName ist, weisen Sie einen größeren szName-Puffer zu, aktualisieren Sie cchName mit der neuen Größe, und rufen Sie GetModuleInfo2 erneut auf.

Sie können auch zunächst den GetModuleInfo2 mit einem szName-Puffer der Größe 0 (null) aufrufen, um die richtige Puffergröße zu ermitteln. Anschließend können Sie die Puffergröße auf den Wert festlegen, der von pcchName zurückgegeben wurde, und GetModuleInfo2 erneut aufrufen.

Weitere Informationen zu diesen zwei Ansätzen finden Sie im Abschnitt "Vom Aufrufer reservierte Puffer" unter Konventionen für Profilerstellungs-API-Methoden.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: CorProf.idl, CorProf.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: 4

Siehe auch

Referenz

ICorProfilerInfo-Schnittstelle

Weitere Ressourcen

Profilerstellungsschnittstellen

Profilerstellung (Referenz zur nicht verwalteten API)