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


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

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

Синтаксис

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 , указывающее, какие данные следует извлечь.

QueryType является наиболее значимым полем. Он указывает, извлекаются ли пути к реестру или файлам, а также конкретный куст реестра и путь к файлу.

Перечисления разделов реестра:

  • D3DDDI_QUERYREGISTRY_SERVICEKEY
  • D3DDDI_QUERYREGISTRY_ADAPTERKEY

Перечисления пути к файлу:

  • D3DDDI_QUERYREGISTRY_DRIVERSTOREPATH
  • D3DDDI_QUERYREGISTRY_DRIVERIMAGEPATH

QueryFlags

[in] Структура D3DDDI_QUERYREGISTRY_FLAGS с флагами, которые управляют извлечением строк. QueryFlags может выполнять дополнительные операции, такие как перевод полученных строк, содержащих пути к файлам, в гостевую среду.

ValueName[MAX_PATH]

[in] При получении сведений о реестре в параметре ValueName должно быть указано имя извлекаемого значения реестра. При получении сведений о пути к файлу значение ValueName игнорируется.

ValueType

[in] При получении сведений о реестре ValueType должен указать ожидаемый тип значения реестра, соответствующий имени значения реестра. При получении сведений о пути к файлу значение ValueType должно иметь значение 0 для успешного выполнения. Дополнительные сведения см. в разделе Типы значений реестра .

PhysicalAdapterIndex

[in] Индекс физического адаптера в цепочке LDA.

OutputValueSize

[out] Размер выходных данных извлекается в это поле, даже если недостаточно места для получения этих данных. Это поле наиболее полезно при извлечении данных переменной величины.

Status

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

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

  • Когда QueryAdapterInfo возвращает STATUS_SUCCESS, а состояниеD3DDDI_QUERYREGISTRY_STATUS_SUCCESS, все поля, начиная с output , являются допустимыми.
  • Если QueryAdapterInfo возвращает STATUS_SUCCESS, а состояниеD3DDDI_QUERYREGISTRY_STATUS_BUFFER_OVERFLOW, допустим только OutputValueSize .
  • Если QueryAdapterInfo не возвращает STATUS_SUCCESS, все поля остаются без изменений, за исключением того, что состояние может быть изменено на D3DDDI_QUERYREGISTRY_STATUS_FAIL.

OutputDword

[out] Удобное поле для повторного интерпретации успешно полученных данных. Это наиболее полезно при чтении DWORD реестра.

OutputQword

[out] Удобное поле для повторного интерпретации успешно полученных данных. Это наиболее полезно при чтении QWORD реестра.

OutputString[1]

OutputBinary[1]

Комментарии

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

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

Требования

Требование Значение
Заголовок d3dukmdt.h

См. также раздел

D3DDDI_QUERYREGISTRY_TYPE

D3DDDI_QUERYREGISTRY_FLAGS

D3DDDI_QUERYREGISTRY_STATUS

KMTQUERYADAPTERINFOTYPE

D3DKMT_QUERYADAPTERINFO