Поделиться через


структура D3DDDI_QUERYREGISTRY_INFO (d3dukmdt.h)

Структура D3DDDI_QUERYREGISTRY_INFO указывает, как D3DDDICB_QUERYADAPTERINFO2::p DriverPrivateData следует переосмыслить при D3DDDICB_QUERYADAPTERINFO2::QueryType D3DDDI_QUERYADAPTERTYPE_QUERYREGISTRY.

Синтаксис

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] Строка ЮНИКОД, которая может содержать имя вложенного ключа, которое отделяется от фактического имени значения обратной косой чертой. Например, ValueName может быть SubKey1\ SubKey2\NameOfTheValue. В этом случае SubKey1\ SubKey2 являются подразделами ключей службы или программного обеспечения.

При получении сведений о реестре ValueName необходимо указать имя значения реестра для получения. При получении сведений о пути к файлу ЗначениеName игнорируется.

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 успешно (состояние D3DDDI_QUERYREGISTRY_STATUS_SUCCESS). Если состояние D3DDDI_QUERYREGISTRY_STATUS_BUFFER_OVERFLOW, OutputValueSize — это количество байтов, необходимых для хранения выходного значения.

Status

[out] Значение D3DDDI_QUERYREGISTRY_STATUS, указывающее состояние запроса.

Когда драйвер отображения в пользовательском режиме вызывает функцию среды выполнения pfnQueryAdapterInfoCb2, инициируется вызов функции DxgkDdiQueryAdapterInfo.

Состояние запроса возвращается отдельно от возвращаемого значения, чтобы указать, что получены различные объемы данных. Следующие три состояния возврата являются наиболее важными для понимания:

  • Когда pfnQueryAdapterInfoCb2 возвращает STATUS_SUCCESS:
    • Если состояниеD3DDDI_QUERYREGISTRY_STATUS_SUCCESS, все поля, начиная с выходных данныхXXX, допустимы.
    • Если состояниеD3DDDI_QUERYREGISTRY_STATUS_BUFFER_OVERFLOW, недостаточно места в частных данных для хранения значения реестра. Допустимо только OutputValueSize.
  • Если pfnQueryAdapterInfoCb2 не возвращает STATUS_SUCCESS, все поля остаются не измененными, за исключением состояния могут быть изменены на D3DDDI_QUERYREGISTRY_STATUS_FAIL.

OutputDword

[out] Часть объединения, содержащая выходное значение. outputDword — это удобное поле для переосмысления успешно полученных данных при чтении DWORD реестра.

OutputQword

[out] Часть объединения, содержащая выходное значение. OutputQword — это удобное поле для переосмысления успешно полученных данных при чтении QWORD реестра.

OutputString[1]

OutputBinary[1]

Замечания

D3DDDI_QUERYREGISTRY_INFO используется для чтения реестра сведений, которые обычно кэшируются во время установки драйвера.

Вместо использования необработанных методов ОС драйверы пользовательского режима и другие компоненты должны повсеместно использовать этот метод в версиях ОС, где она поддерживается. Это позволяет ОС максимально повысить совместимость пользовательского режима с изменениями зависимостей и сценариями, такими как виртуализированные среды. Дополнительные сведения см. в паравиртуализации GPU.

Требования

Требование Ценность
Минимально поддерживаемый клиент Windows 10 версии 1803 (WDDM 2.4)
заголовка d3dukmdt.h

См. также

D3DDDI_QUERYREGISTRY_TYPE

D3DDDI_QUERYREGISTRY_FLAGS

D3DDDI_QUERYREGISTRY_STATUS

KMTQUERYADAPTERINFOTYPE

D3DKMT_QUERYADAPTERINFO

pfnQueryAdapterInfoCb2