共用方式為


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

另請參閱

D3DDDI_QUERYREGISTRY_TYPE

D3DDDI_QUERYREGISTRY_FLAGS

D3DDDI_QUERYREGISTRY_STATUS

KMTQUERYADAPTERINFOTYPE

D3DKMT_QUERYADAPTERINFO

pfnQueryAdapterInfoCb2