DXGKDDI_QUERY_DEVICE_DESCRIPTOR コールバック関数 (dispmprt.h)
DxgkDdiQueryDeviceDescriptor 関数は、ディスプレイ アダプターの子デバイスまたはディスプレイ アダプターの子デバイスに接続されている外部デバイス (通常はモニター) の記述子を返します。
構文
DXGKDDI_QUERY_DEVICE_DESCRIPTOR DxgkddiQueryDeviceDescriptor;
NTSTATUS DxgkddiQueryDeviceDescriptor(
[in] IN_CONST_PVOID MiniportDeviceContext,
[in] IN_ULONG ChildUid,
[in, out] INOUT_PDXGK_DEVICE_DESCRIPTOR DeviceDescriptor
)
{...}
パラメーター
[in] MiniportDeviceContext
ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーの DxgkDdiAddDevice 関数は、以前は DirectX グラフィックス カーネル サブシステムにこのハンドルを提供しました。
[in] ChildUid
子デバイスを一意に識別する整数。 ディスプレイ ミニポート ドライバーの DxgkDdiQueryChildRelations 関数は、以前にこの識別子を表示ポート ドライバーに提供しました。
[in, out] DeviceDescriptor
DXGK_DEVICE_DESCRIPTOR構造体へのポインター。 呼び出し元は 、DescriptorLength メンバーと DescriptorBuffer メンバーを 初期化します。 子デバイスに TypeVideoOutput 型がある場合、呼び出し元は DescriptorOffset メンバーも初期化します。 戻り時に、 DescriptorBuffer メンバーが指す呼び出し元によって割り当てられたバッファーが記述子を受け取ります。
戻り値
DxgkDdiQueryDeviceDescriptor は、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
STATUS_SUCCESS | 関数は、デバイス記述子を正常に返しました。 |
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED | ChildUid によって識別される (オンボード) 子デバイスは、記述子をサポートしていません。 |
STATUS_MONITOR_NO_DESCRIPTOR | ChildUid によって識別される子デバイスは、EDID 記述子をサポートしていないモニターに接続されています。 |
STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA | ChildUid によって識別される子デバイスは、EDID 記述子をサポートするモニターに接続されていますが、記述子には DeviceDescriptor の DescriptorOffset および DescriptorLengthmembers で指定された EDID 拡張ブロックがありません。 |
注釈
DxgkDdiQueryDeviceDescriptor では、DeviceDescriptor-DescriptorLength> で指定されたバイト数を超える値を書き込む必要があります。
ChildUid によって識別される子デバイスに TypeVideoOutput の種類がある場合、DxgkDdiQueryDeviceDescriptor は、出力に接続されているモニターの拡張表示識別データ (EDID) の一部を返します。 DeviceDescriptor-DescriptorOffset> は、返されるデータの先頭の EDID へのバイト オフセットを指定します。
ChildUid によって識別される子デバイスがビデオ出力でない場合、DxgkDdiQueryDeviceDescriptor は汎用デバイス記述子を返します。つまり、DXGK_GENERIC_DESCRIPTOR構造体のメンバーを入力します。
DxgkDdiQueryDeviceDescriptor 関数は、1 つの子デバイスに対して複数回呼び出すことができます。 モニターが接続されている子デバイスの場合、ディスプレイ ポート ドライバーは、初期化中 に DxgkDdiQueryDeviceDescriptor を呼び出して、モニターの EDID の最初の 128 バイト ブロックを取得します。 その後、モニター クラス関数ドライバー (Monitor.sys) は DxgkDdiQueryDeviceDescriptor を呼び出して、同じモニターの EDID の選択された部分 (最初の 128 バイト ブロックを含む) を取得します。
DxgkDdiQueryDeviceDescriptor をページング可能にする必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
対象プラットフォーム | デスクトップ |
Header | dispmprt.h |
IRQL | PASSIVE_LEVEL |