VideoPortVerifyAccessRanges 関数 (video.h)

VideoPortVerifyAccessRanges 関数は、別のドライバーが指定されたバス相対アクセス範囲と、VIDEO_PORT_CONFIG_INFO構造体で指定されたその他のハードウェア リソースの所有権を既に要求しているかどうかをレジストリで確認します。 そうでない場合、この関数は呼び出し元に対して指定されたリソースを要求します。

構文

VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortVerifyAccessRanges(
                 PVOID               HwDeviceExtension,
                 ULONG               NumAccessRanges,
  [in, optional] PVIDEO_ACCESS_RANGE AccessRanges
);

パラメーター

HwDeviceExtension

ミニポート ドライバーのデバイス拡張機能へのポインター。

NumAccessRanges

AccessRanges 配列内の要素の数 (0) を指定します。

[in, optional] AccessRanges

ミニポート ドライバーのアクセス範囲配列へのポインター、または NULL。 この配列 の各VIDEO_ACCESS_RANGE型要素は、アダプターのデバイス メモリ、I/O ポート、またはレジスタ アドレスのバス相対範囲を指定します。

戻り値

VideoPortVerifyAccessRanges は、 次のいずれかの値を返します。

リターン コード 説明
ERROR_INVALID_PARAMETER エラーが発生したか、競合が見つかりました。つまり、別のドライバーが既にそのデバイスの特定のハードウェア リソースの 1 つ以上を要求しています。
NO_ERROR 指定された AccessRanges は有効であり、呼び出し元によって使用されるように要求されています。

注釈

すべてのビデオ ミニポート ドライバーは、 VideoPortVerifyAccessRanges を呼び出すか、ドライバー (およびシステム) の初期化プロセス中にビデオ アダプターにアクセスする前に VideoPortGetAccessRanges によって返されるアクセス範囲を使用する必要があります。

VideoPortVerifyAccessRanges は、ミニポート ドライバーの HwVidFindAdapter 関数によってのみ呼び出すことができます。

すべてのビデオ ミニポート ドライバーは、ドライバーのヘッダー ファイルまたはコードまたはスタックに静的に割り当てられたメモリとして、そのデバイスのバス相対アクセス範囲を定義する必要があります。 ほとんどのミニポート ドライバーは、VGA 互換 SVGA ミニポート ドライバーなど、ビデオ メモリに PC 標準アドレス範囲を使用するものを除き、スタックにビデオ アクセス範囲を設定します。

HwVidFindAdapter 関数は、VideoPortGetAccessRanges を呼び出すか、VideoPortGetDeviceData または VideoPortGetRegistryParameters の呼び出しを通じてレジストリを確認することで、バス相対アクセス範囲情報の取得を試みる必要があります。 HwVidFindAdapter がこの情報を取得できない場合、ミニポート ドライバーには、アクセス範囲のバス相対既定値のセットが必要です。

ミニポート ドライバーのアクセス範囲が外部で構成可能な場合、インストール プログラムは、レジストリ内のアダプターのアクセス範囲を設定します。 このようなミニポート ドライバーの HwVidFindAdapter 関数は、レジストリから取得した情報を処理するミニポート ドライバー提供の HwVidQueryNamedValueCallback 関数を使用して VideoPortGetRegistryParameters を呼び出すことができます。

HwVidFindAdapter は、VideoPortVerifyAccessRanges または VideoPortGetAccessRanges を最初に呼び出し、それぞれの関数がNO_ERRORを返す場合を除き、VideoPortGetDeviceBase にアクセス範囲アドレスを渡してはなりません。

VideoPortVerifyAccessRanges は、最初の AccessRanges 仕様または割り込みベクターなどの VIDEO_PORT_CONFIG_INFOの値によって、別のドライバーが既にリソースを要求していることを示すERROR_XXX を返す場合に、再度呼び出すことができます。

VideoPortVerifyAccessRanges がNO_ERRORを返す場合、同じアダプターの後続の呼び出しによって、レジストリ内のそのアダプターのリソースに対するミニポート ドライバーの要求が上書きされます。

ミニポート ドライバーは、VideoPortRead/WriteXxx 関数で VideoPortGetDeviceBase によって返されるマップされたアドレスを使用する場合を除き、ビデオ アダプターと通信できないことに注意してください。

HwVidFindAdapter 関数がバス相対アクセス範囲と、アダプターの他のハードウェア リソースを要求し、アダプターをサポートしていないと判断した場合、ミニポート ドライバーは、VideoPortVerifyAccessRanges または VideoPortGetAccessRanges を呼び出して、NumAccessRanges をゼロに設定し、AccessRangesNULL に設定して、レジストリ内のハードウェア リソースに対する要求を放棄する必要があります。

ミニポート ドライバーが使用しなくなった要求されたアクセス範囲のサブセットに対する要求を放棄するには、次の操作を行います。

  1. 解放する範囲を記述する各要素が、要求された範囲のバス相対ベースに設定されていてもRangeLength が 0 にリセットされるように、アダプターの AccessRanges 仕様を変更します。
  2. この変更された AccessRanges 配列を使用して VideoPortVerifyAccessRanges を呼び出します。

要件

要件
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム デスクトップ
Header video.h (Video.h を含む)
Library Videoprt.lib
[DLL] Videoprt.sys
IRQL PASSIVE_LEVEL

こちらもご覧ください

HwVidFindAdapter

HwVidQueryDeviceCallback

HwVidQueryNamedValueCallback

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetRegistryParameters