D3DDDI_QUERYREGISTRY_INFO結構(d3dukmdt.h)
D3DDDI_QUERYREGISTRY_INFO 結構指出當 D3DDDICB_QUERYADAPTERINFO2::QueryTypeD3DDDI_QUERYADAPTERTYPE_QUERYREGISTRY時,應該如何重新解譯 D3DDDICB_QUERYADAPTERINFO2::p DriverPrivateData。
語法
typedef struct _D3DDDI_QUERYREGISTRY_INFO {
D3DDDI_QUERYREGISTRY_TYPE QueryType;
D3DDDI_QUERYREGISTRY_FLAGS QueryFlags;
WCHAR ValueName[MAX_PATH];
ULONG ValueType;
ULONG PhysicalAdapterIndex;
ULONG OutputValueSize;
D3DDDI_QUERYREGISTRY_STATUS Status;
union {
DWORD OutputDword;
D3DKMT_ALIGN64 UINT64 OutputQword;
WCHAR OutputString[1];
BYTE OutputBinary[1];
};
} D3DDDI_QUERYREGISTRY_INFO;
成員
QueryType
[in]D3DDDI_QUERYREGISTRY_TYPE 值,指出要擷取的數據。
D3DDDI_QUERYREGISTRY_INFO::QueryType 是這個結構最重要的字段。 它指出正在擷取登錄或檔案路徑,以及要擷取哪些特定的登錄區與檔案路徑。
登錄機碼列舉:
- D3DDDI_QUERYREGISTRY_SERVICEKEY
- D3DDDI_QUERYREGISTRY_ADAPTERKEY
檔案路徑列舉:
- D3DDDI_QUERYREGISTRY_DRIVERSTOREPATH
- D3DDDI_QUERYREGISTRY_DRIVERIMAGEPATH
QueryFlags
[in]具有旗標的 D3DDDI_QUERYREGISTRY_FLAGS 結構,可控制如何擷取字串。 QueryFlags 可以執行其他作業,例如將包含檔案路徑的擷取字串轉譯為客體環境。
ValueName[MAX_PATH]
[in]零終止的 UNICODE 字串,可包含子索引鍵名稱,其會以反斜杠分隔實際值名稱。 例如,ValueName 可以是 SubKey1\ SubKey2\NameOfTheValue
。 在此情況下,SubKey1\ SubKey2
是服務或軟體密鑰的子機碼。
擷取登錄資訊時,ValueName 必須指定要擷取的登錄值名稱。 擷取檔案路徑資訊時,會忽略 valueName。
ValueType
[in]擷取登錄資訊時,ValueType 必須指定對應至登錄值名稱的預期登錄值類型。 它必須是REG_SZ、REG_MULTI_SZ、REG_EXPAND_SZ、REG_BINARY、REG_QWORD或REG_DWORD。
擷取檔案路徑資訊時,ValueType 必須是 0 才能成功。
如需詳細資訊,請參閱 登錄實值類型。
PhysicalAdapterIndex
[in]LDA 鏈結中的實體配接器索引。
OutputValueSize
[out]如果 pfnQueryAdapterInfoCb2 成功,寫入輸出的大小會以位元組為單位(Status 為 D3DDDI_QUERYREGISTRY_STATUS_SUCCESS)。 狀態 D3DDDI_QUERYREGISTRY_STATUS_BUFFER_OVERFLOW 時,OutputValueSize 是保留輸出值所需的位元組數目。
Status
[out]表示查詢狀態的 D3DDDI_QUERYREGISTRY_STATUS 值。
當使用者模式顯示驅動程式呼叫運行時間的 pfnQueryAdapterInfoCb2 函式時,會起始對 DxgkDdiQueryAdapterInfo 函式的呼叫。
查詢的狀態會與傳回值分開傳回,以指出已擷取不同的數據量。 下列三個傳回狀態是瞭解的最重要狀態:
- 當 pfnQueryAdapterInfoCb2 傳回STATUS_SUCCESS時:
- 如果 狀態 是 D3DDDI_QUERYREGISTRY_STATUS_SUCCESS,則所有以 OutputXxx 開頭的字段都是有效的。
- 如果 狀態 是 D3DDDI_QUERYREGISTRY_STATUS_BUFFER_OVERFLOW,則私人數據中沒有足夠的空間來保存登錄值。 只有 OutputValueSize 有效。
- pfnQueryAdapterInfoCb2 未傳回STATUS_SUCCESS時,除了 Status 可能會變更為 D3DDDI_QUERYREGISTRY_STATUS_FAIL之外,所有字段都會保持未修改。
OutputDword
[out]保留輸出值的聯集部分。 OutputDword 是一個方便字段,可用於在讀取登錄 DWORD 時重新解譯成功擷取的數據。
OutputQword
[out]保留輸出值的聯集部分。 OutputQword 是一個方便字段,用於在讀取登錄 QWORD 時重新解譯成功擷取的數據。
OutputString[1]
OutputBinary[1]
言論
D3DDDI_QUERYREGISTRY_INFO 可用來讀取登錄,以取得驅動程式安裝期間經常快取的資訊。
使用者模式驅動程式和其他元件必須無處不在地在支援的OS版本上使用這項技術,而不是使用原始OS方法。 這可讓OS最大化與相依性變更和虛擬化環境等案例的使用者模式相容性。 如需詳細資訊,請參閱 GPU 半虛擬化。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1803 (WDDM 2.4) |
標頭 | d3dukmdt.h |