DkmNativeModuleInstance 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
'DkmNativeModuleInstance' 用於包含 CPU 程式代碼和/或由 Win32 載入器載入的模組。
public ref class DkmNativeModuleInstance : Microsoft::VisualStudio::Debugger::DkmModuleInstance
[System.Runtime.InteropServices.Guid("b7de7beb-acab-76c4-bd78-fbba698e4b65")]
public class DkmNativeModuleInstance : Microsoft.VisualStudio.Debugger.DkmModuleInstance
[<System.Runtime.InteropServices.Guid("b7de7beb-acab-76c4-bd78-fbba698e4b65")>]
type DkmNativeModuleInstance = class
inherit DkmModuleInstance
Public Class DkmNativeModuleInstance
Inherits DkmModuleInstance
- 繼承
- 繼承
- 屬性
屬性
BaseAddress |
載入模組之起始記憶體位址。 此值應該一律有效。 |
ClrHeaderStatus |
包含已載入模組IMAGE_COR20_HEADER的 [旗標] 欄位中的資訊。 這表示載入的二進位檔類型。 |
Connection |
這代表監視器與 IDE 之間的連線。 如果監視器在與 IDE 相同的進程中執行,則它可以是本機連線,也可以是遠端連線。 在監視程式中,只有一個連線。 (繼承來源 DkmModuleInstance) |
Flags |
指出 DkmModuleInstance 特性的旗標。 (繼承來源 DkmModuleInstance) |
FullName |
完整模組名稱。 如果是以檔案為基礎的模組,這是模組的完整路徑 (,例如:c:\windows\system32\kernel32.dll。 (繼承來源 DkmModuleInstance) |
IsDisabled |
指出此模組實例是否已停用。 調試程式會忽略已停用的模組。 針對原生模組,已停用模組的位址範圍會視為未對應。 針對 CLR 模組,這些模組中的任何框架會從呼叫堆疊中隱藏。 (繼承來源 DkmModuleInstance) |
IsUnloaded |
如果已針對這個對象引發 'unloaded' 事件, (範例:DkmThread::Unload 呼叫) 或對象已關閉,則傳回 true。 請注意,檢查此狀態時,請務必小心,而不需同步處理,傳回的狀態在讀取之後可能無法再精確指示。 (繼承來源 DkmDataContainer) |
LoadContext |
載入此課程模組之內容的字串描述。 例如:'Win32' 或 'CLR v2.0.50727:預設網域'。 (繼承來源 DkmModuleInstance) |
LoadOrder |
已載入至並包含此模組之模組實例數目的整數計數。 每個運行時間實例都會持續追蹤其本身的負載順序計數。 (繼承來源 DkmModuleInstance) |
MemoryLayout |
列舉,指出模組如何在記憶體中配置。 (繼承來源 DkmModuleInstance) |
MinidumpInfoPart |
[選擇性]'MinidumpInfoPart' 可用來傳達迷你傾印 DkmProcess 中模組的其他資訊。 (繼承來源 DkmModuleInstance) |
Module |
[選擇性]符號處理程式的模組表示法 (DkmModule) 與此模組實例相關聯。 這個值一開始為 Null,而且會在符號與這個模組實例相關聯時指派。 (繼承來源 DkmModuleInstance) |
Name |
模組名稱的簡短表示法。 針對以檔案為基礎的模組,這是檔名和擴展名 (例如:kernel32.dll) 。 (繼承來源 DkmModuleInstance) |
Process |
DkmProcess 代表正在偵錯的目標進程。 調試程式會偵錯進程,因此這是偵錯的基本單位。 DkmProcess 可以代表系統進程或虛擬進程,例如minidumps。 (繼承來源 DkmModuleInstance) |
RuntimeInstance |
表示在目標進程中執行的機器碼。 |
Size |
模組記憶體區域中的位元元組數目。 |
SymbolFileId |
[選擇性]包含尋找此課程模組符號所需的資訊。 在 Win32 上,此資訊包含在IMAGE_DEBUG_DIRECTORY內。 (繼承來源 DkmModuleInstance) |
TagValue |
DkmModuleInstance 是抽象基類。 這個列舉表示這個物件的衍生類別是的實例。 (繼承來源 DkmModuleInstance) |
TimeDateStamp |
已載入模組建置時的日期/時間。 這個值是從載入模組的IMAGE_NT_HEADERS取得。 度量單位是 FILETIME 值,這是 64 位值,代表自 1601 年 1 月 1 日起的 100 奈秒間隔數 (UTC) 。 (繼承來源 DkmModuleInstance) |
UniqueId |
唯一識別 DkmModuleInstance 物件。 (繼承來源 DkmModuleInstance) |
Version |
[選擇性]檔案版本資訊。 (繼承來源 DkmModuleInstance) |
方法
ClearTransitionModuleFlag() |
運行時間實例會呼叫這個方法,將模組標示為界限模組。 逐步執行時,運行時間應該檢查該步驟是否已達到界限模組,並開始執行仲裁。 請注意,某些運行時間可能無法接受此要求。 發送器會保留呼叫 FlagAsTransitionModule 的次數。 只有當對 ClearTransitionModuleFlag 的呼叫數目相符時,模組就不會再被視為轉換模組。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmModuleInstance) |
Create(String, String, UInt64, DkmModuleVersion, DkmSymbolFileId, DkmModuleFlags, DkmModuleMemoryLayout, UInt32, String, DkmNativeRuntimeInstance, UInt64, UInt32, DkmClrHeaderStatus, Boolean, DkmModule, DkmModuleInstance+MinidumpInfo, DkmDataItem) |
Create 新的 DkmNativeModuleInstance 物件實例。 這個方法會傳送ModuleInstanceLoad事件。 位置條件約束:必須從監視器元件 (元件層級 < 100,000) 呼叫 API。 |
Decompile() |
將模組的程式代碼分解成 C#,並使用此內嵌來源建立新的可攜式 PDB。 共用此符號檔的所有模組都會開始使用這些更新的符號。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5) 中引進。 (繼承來源 DkmModuleInstance) |
Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult>) |
將模組的程式代碼分解成 C#,並使用此內嵌來源建立新的可攜式 PDB。 共用此符號檔的所有模組都會開始使用這些更新的符號。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5) 中引進。 (繼承來源 DkmModuleInstance) |
Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult173>) |
將模組的程式代碼分解成 C#,並使用此內嵌來源建立新的可攜式 PDB。 共用此符號檔的所有模組都會開始使用這些更新的符號。 實作應該在失敗時傳回S_OK,並透過 『HR』 和 『ErrorMessage』 參數傳回實際的 HRESULT 和任何其他錯誤資訊。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 引進。 (繼承來源 DkmModuleInstance) |
Decompile(String, Int32) |
將模組的程式代碼分解成 C#,並使用此內嵌來源建立新的可攜式 PDB。 共用此符號檔的所有模組都會開始使用這些更新的符號。 實作應該在失敗時傳回S_OK,並透過 『HR』 和 『ErrorMessage』 參數傳回實際的 HRESULT 和任何其他錯誤資訊。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 引進。 (繼承來源 DkmModuleInstance) |
FindExportByOrdinal(DkmWorkList, UInt32, Boolean, DkmCompletionRoutine<DkmFindExportByOrdinalAsyncResult>) |
尋找匯出函式的位址 (或序數所指定的數據匯出) 。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回 。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 此 API 是在 Visual Studio 15 RTM (DkmApiVersion.VS15RTM) 中引進。 |
FindExportByOrdinal(UInt32, Boolean) |
尋找匯出函式的位址 (或序數所指定的數據匯出) 。 此 API 是在 Visual Studio 15 RTM (DkmApiVersion.VS15RTM) 中引進。 |
FindExportName(DkmWorkList, String, Boolean, DkmCompletionRoutine<DkmFindExportNameAsyncResult>) |
尋找指定之具名匯出函式的位址, (或數據匯出) 。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回 。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 |
FindExportName(String, Boolean) |
尋找指定之具名匯出函式的位址, (或數據匯出) 。 |
FlagAsTransitionModule() |
運行時間實例會呼叫這個方法,將模組標示為界限模組。 逐步執行時,運行時間應該檢查該步驟是否已達到界限模組,並開始執行仲裁。 請注意,某些運行時間可能無法接受此要求。 發送器會保留呼叫這個 次數的計數。 只有在已進行 ClearTransitionModuleFlag 的相符呼叫數目時,模組就不會再被視為轉換模組。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmModuleInstance) |
GetDataItem<T>() |
取得已新增至這個容器實例的 『T』 實例。 如果此容器不包含 『T』,此函式會傳回 null。 (繼承來源 DkmDataContainer) |
GetELFBuildId() |
傳回 ELF 模組的組建識別碼。 位置條件約束:必須從監視器元件 (元件層級 < 100,000) 呼叫 API。 此 API 是在 Visual Studio 16 Update 8 (DkmApiVersion.VS16Update8) 引進。 |
GetFunctionTableEntry(UInt64) |
取得傳遞位址的函式數據表專案。 引擎的格式取決於偵錯架構。 |
GetGPUDisassembly(UInt64, UInt32, Boolean, Boolean) |
取得偵錯模組實例中位址範圍的反組譯碼。 (繼承來源 DkmModuleInstance) |
GetGPUDisassemblySize() |
傳回偵錯模組實例中的反組譯碼大小。 (繼承來源 DkmModuleInstance) |
GetNextGPUInstructionAddress(UInt64) |
傳回下一個相對於起始位址的指令位址。 (繼承來源 DkmModuleInstance) |
GetSymbolLoadInformation() |
傳回字串,描述搜尋符號的各種位置,以及檢查該位置的結果。 此資訊可用來在模組視窗中填入 「符號載入資訊」。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 (繼承來源 DkmModuleInstance) |
GetSymbolSearchResult() |
擷取與此模組實例相關聯的任何符號搜尋結果。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 引進。 (繼承來源 DkmModuleInstance) |
GetSymbolSearchResult(DkmWorkList, DkmCompletionRoutine<DkmGetSymbolSearchResultAsyncResult>) |
擷取與此模組實例相關聯的任何符號搜尋結果。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 引進。 (繼承來源 DkmModuleInstance) |
GetSymbolStatusMessage(Boolean) |
取得目前符號狀態的當地語系化字串描述。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 (繼承來源 DkmModuleInstance) |
GetSymbolStatusMessage(DkmWorkList, Boolean, DkmCompletionRoutine<DkmGetSymbolStatusMessageAsyncResult>) |
取得目前符號狀態的當地語系化字串描述。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 (繼承來源 DkmModuleInstance) |
IsSuppressed() |
這個方法可讓元件判斷是否隱藏模組的模組載入事件。 此 API 是在 Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3) 引進。 (繼承來源 DkmModuleInstance) |
IsTransitionModule() |
如果有任何運行時間實例將此模組標示為轉換模組,則會傳回 true。 位置條件約束:必須從監視元件呼叫 API, (元件層級 < 100,000) 。 (繼承來源 DkmModuleInstance) |
IsUserCode() |
判斷模組是否被視為使用者程序代碼。 位置條件約束:這個方法可以從IDE元件呼叫。 從 Visual Studio 2013 Update 2 開始,您也可以從 Managed 程式代碼的監視元件呼叫此功能。 從 Visual Studio 2017 Update 8 開始,API 的 CallDirection 是從 'Normal' 建立的,現在可以從任何元件呼叫 AsyncCaller 已設定為 'true',而 CallerLocationConstraint 已從 'NoMarshalling' 設定為 'None'。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 引进。 (繼承來源 DkmModuleInstance) |
IsUserCode(DkmWorkList, DkmCompletionRoutine<DkmModuleInstanceIsUserCodeAsyncResult>) |
判斷模組是否被視為使用者程序代碼。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回 。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:這個方法可以從IDE元件呼叫。 從 Visual Studio 2013 Update 2 開始,您也可以從 Managed 程式代碼的監視元件呼叫此功能。 從 Visual Studio 2017 Update 8 開始,API 的 CallDirection 是從 'Normal' 建立的,現在可以從任何元件呼叫 AsyncCaller 已設定為 'true',而 CallerLocationConstraint 已從 'NoMarshalling' 設定為 'None'。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 引进。 (繼承來源 DkmModuleInstance) |
OnBinaryLoaded(String) |
引發 BinaryLoaded 事件。 實作事件接收介面的元件將會收到事件通知。 所有元件都收到通知后,控件就會傳回。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 引进。 (繼承來源 DkmModuleInstance) |
OnBinaryReloadOpportunity() |
引發 BinaryReloadOpportunity 事件。 實作事件接收介面的元件將會收到事件通知。 所有元件都收到通知后,控件就會傳回。 位置條件約束:必須從監視器元件 (元件層級 < 100,000) 呼叫 API。 此 API 是在 Visual Studio 12 Update 2 (DkmApiVersion.VS12Update2) 引進。 (繼承來源 DkmModuleInstance) |
OnModuleModified() |
當模組因 EnC 或動態發出程式代碼而變更時,會呼叫此方法。 位置條件約束:必須從監視器元件 (元件層級 < 100,000) 呼叫 API。 此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引進。 (繼承來源 DkmModuleInstance) |
OnSymbolsLoaded(DkmModule, Boolean) |
基底偵錯監視器會叫用這個方法,以回應對IDkmModuleSymbolsLoaded.RaiseSymbolsLoadedEvent 的呼叫。 這個方法必須從事件線程叫用,或從要求線程叫用,作為重載的一部分。 基底偵錯監視器應該同步切換至事件線程、暫停目標進程,以及叫用 OnSymbolsLoaded。 位置條件約束:必須從監視器元件 (元件層級 < 100,000) 呼叫 API。 (繼承來源 DkmModuleInstance) |
OnSymbolsUpdated(DkmModule) |
引發 ModuleSymbolsUpdated 事件。 實作事件接收介面的元件將會收到事件通知。 所有元件都收到通知后,控件就會傳回。 (繼承來源 DkmModuleInstance) |
ReadSymbols() |
符號處理程式會叫用這個方法,以讀取符號位於偵錯範圍內存中的 DkmModuleInstances 符號。 (繼承來源 DkmModuleInstance) |
RemoveDataItem<T>() |
從這個容器中移除 『T』 的實例。 通常不需要呼叫這個方法,因為關閉物件時,數據容器會自動清空。 (繼承來源 DkmDataContainer) |
SetDataItem<T>(DkmDataCreationDisposition, T) |
將新專案放在數據容器中。 (繼承來源 DkmDataContainer) |
SetDisabled(Boolean) |
匯報 模組上的停用狀態。 這個方法只能從ModuleInstanceLoad事件呼叫。 停用模組時,通常也會隱藏模組載入事件。 (繼承來源 DkmModuleInstance) |
SetModule(DkmModule, Boolean) |
符號提供者會叫用這個方法,以將 DkmModule 與 DkmModuleInstance 產生關聯,並觸發 ModuleSymbolsLoaded 事件。 DkmModuleInstance 物件只能呼叫一次。 呼叫此 API 會建立 DkmModule-DkmModuleInstance<> 關聯,以及引發 ModuleSymbolsLoaded 事件。 (繼承來源 DkmModuleInstance) |
TryLoadBinary() |
嘗試使用更新的符號路徑載入先前無法載入的二進位檔。 (繼承來源 DkmModuleInstance) |
TryLoadBinary(DkmWorkList, DkmCompletionRoutine<DkmTryLoadBinaryAsyncResult>) |
嘗試使用更新的符號路徑載入先前無法載入的二進位檔。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回 。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 (繼承來源 DkmModuleInstance) |
TryLoadSymbols() |
呼叫 以起始載入模組時找不到其符號的 DkmModuleInstances 符號載入。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 (繼承來源 DkmModuleInstance) |
TryLoadSymbols(DkmSymbolLoadFlags) |
呼叫 以起始載入模組時找不到其符號的 DkmModuleInstances 符號載入。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) 中引進。 (繼承來源 DkmModuleInstance) |
TryLoadSymbols(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>) |
呼叫 以起始載入模組時找不到其符號的 DkmModuleInstances 符號載入。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回 。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 (繼承來源 DkmModuleInstance) |
TryLoadSymbols(DkmWorkList, DkmSymbolLoadFlags, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>) |
呼叫 以起始載入模組時找不到其符號的 DkmModuleInstances 符號載入。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回 。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。 此 API 是在 Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) 中引進。 (繼承來源 DkmModuleInstance) |
TryLoadSymbolsCallback() |
呼叫 以起始載入模組時找不到其符號的 DkmModuleInstances 符號載入。 位置條件約束:這可以從用戶端或伺服器呼叫。 這的伺服器實作是一種快取,可防止不必要的網路呼叫。 用戶端會直接移至「實際」實作,這也會確保提早重新嘗試傳回。 此 API 是在 Visual Studio 17 RTM (DkmApiVersion.VS17RTM) 中引進。 (繼承來源 DkmModuleInstance) |
TryLoadSymbolsCallback(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsCallbackAsyncResult>) |
呼叫 以起始載入模組時找不到其符號的 DkmModuleInstances 符號載入。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回 。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:這可以從用戶端或伺服器呼叫。 這的伺服器實作是一種快取,可防止不必要的網路呼叫。 用戶端會直接移至「實際」實作,這也會確保提早重新嘗試傳回。 此 API 是在 Visual Studio 17 RTM (DkmApiVersion.VS17RTM) 中引進。 (繼承來源 DkmModuleInstance) |
TryLoadSymbolsCallback177(DkmSymbolLoadFlags) |
呼叫 以起始載入模組時找不到其符號之 DkmModuleInstances 的本機目前符號載入。 位置條件約束:這可以從用戶端或伺服器呼叫。 這的伺服器實作是一種快取,可防止不必要的網路呼叫。 用戶端會直接移至「實際」實作,這也會確保提早重新嘗試傳回。 此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引進。 (繼承來源 DkmModuleInstance) |
TryLoadSymbolsCallback177(DkmWorkList, DkmSymbolLoadFlags, DkmCompletionRoutine<DkmTryLoadSymbolsCallback177AsyncResult>) |
呼叫 以起始載入模組時找不到其符號之 DkmModuleInstances 的本機目前符號載入。 這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回 。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。 位置條件約束:這可以從用戶端或伺服器呼叫。 這的伺服器實作是一種快取,可防止不必要的網路呼叫。 用戶端會直接移至「實際」實作,這也會確保提早重新嘗試傳回。 此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引進。 (繼承來源 DkmModuleInstance) |
Unload() |
將 Unload 物件標示為已卸除,並通知實作事件接收介面的元件。 所有元件都收到通知后,控件就會傳回。 這個方法只能由建立 物件的元件呼叫。 (繼承來源 DkmModuleInstance) |
UpdateFunctionTableEntries(DkmProcessorArchitecture, UInt32, Byte[]) |
由 EnC 引擎呼叫,以更新模組的函式數據表。 此 API 是在 Visual Studio 17 Update 1 (DkmApiVersion.VS17Update1) 引進。 |