ビデオ ミニポート ドライバー関数の DriverEntry

DriverEntry は、ビデオ ミニポート ドライバーへの最初のエントリ ポイントです。

構文

ULONG DriverEntry(
  _In_ PVOID Context1,
  _In_ PVOID Context2
);

パラメーター

Context1 [in] ミニポート ドライバーが VideoPortInitialize を呼び出す必要があるコンテキスト値へのポインター。 このコンテキスト値は、このミニポート ドライバーのシステムによって作成されたドライバー オブジェクトを識別します。

Context2 [in] ミニポート ドライバーが VideoPortInitialize を呼び出す必要がある 2 番目のコンテキスト値へのポインター。 このコンテキスト値は、このミニポート ドライバーのレジストリ パスを識別します。

戻り値

DriverEntry は、 VideoPortInitialize によって 返される値を返します。

解説

各ミニポート ドライバーが読み込まれるには、 DriverEntry という明示的な名前の関数が必要です。 DriverEntry は、I/O システムによって直接呼び出されます。

DriverEntry は、次の手順を実行する必要があります。

  • VIDEO_HW_INITIALIZATION_DATA 構造体のスタックにメモリを割り当て、 VideoPortZeroMemory を呼び出してゼロ初期化します。

  • ミニポート ドライバーのエントリ ポイントを含む、VIDEO_HW_INITIALIZATION_DATA メンバーにドライバー固有の値とアダプター固有の値を入力します。 次のエントリ ポイントは、ミニポート ドライバーが提供するルーチンに設定する必要があります。

    HwVidFindAdapter

    HwVidInitialize

    HwVidStartIO

    HwVidInterrupt

    HwVidQueryInterface

    HwVidGetVideoChildDescriptor

    HwVidGetPowerState

    HwVidSetPowerState

  • ドライバーのハードウェアがレガシ リソースをサポートしている場合、ドライバーはそれらを報告する必要があります。 DriverEntry は、ドライバーのコンパイル時にリソースの一覧がわかっている場合は、次の操作を行う必要があります。

    • VIDEO_HW_INITIALIZATION_DATA 構造体の HwLegacyResourceList メンバーと HwLegacyResourceCount メンバー内のすべてのそのようなリソースを要求して報告します。 レガシ リソースは、デバイスの PCI 構成領域に一覧表示されていないリソースですが、デバイスによってデコードされます。
    • ミニポート ドライバーで定義されている各 VIDEO_ACCESS_RANGE 構造体の RangePassive フィールドに適宜入力します。

    レガシ リソースの一覧を実行時まで特定できない場合、ドライバーは代わりに HwVidLegacyResources 関数を実装してレポートする必要があります。

  • VideoPortInitialize を呼び出し、最初の 2 つのパラメーターとして Context1Context2 を渡し、3 番目のパラメーターとしてVIDEO_HW_INITIALIZATION_DATA構造体へのポインターを、4 番目のパラメーターとして NULL を渡します。

DriverEntry は、 VideoPortInitialize によって返される値を呼び出し元に伝達する必要があります。

DriverEntry がリソースを要求する場合は、ハードウェアがデコードするが PCI によって要求されないリソースのみを含める必要があります。 ミニポート ドライバーは、 VideoPortVerifyAccessRanges への後続の呼び出しで、これらのレガシ リソースをもう一度 "再利用" できます。ただし、ビデオ ポート ドライバーは、このような以前に要求されたリソースの要求を無視するだけです。 ミニポート ドライバーが、 DriverEntry (実装されている場合は HwVidLegacyResources) の VIDEO_HW_INITIALIZATION_DATA 構造体の HwLegacyResourceList メンバーで以前に要求されなかった VideoPortVerifyAccessRanges のレガシ アクセス範囲を要求しようとすると、システムで電源管理とドッキングが無効になります。

Windows NT 4.0 を実行しているコンピューターもサポートする Microsoft Windows 2000 以降のドライバーの場合、ハードウェア構成定数は video.h で定義されています。 これらの定数については、次の表で説明します。

定数 説明

SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO

Windows NT 4.0 VIDEO_PORT_CONFIG_INFO 構造体のサイズ (バイト単位)。

SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA

Windows NT 4.0 VIDEO_HW_INITIALIZATION_DATA 構造体のサイズ (バイト単位)。 VideoPortInitialize が失敗した場合、ビデオ ミニポート ドライバーは、この構造体の Windows 2000 (以降) バージョンまたは Windows NT 4.0 バージョンのいずれかのサイズにVIDEO_HW_INITIALIZATION_DATA構造体の HwInitDataSize メンバーを設定する必要があります。 ミニポート ドライバーを実行するオペレーティング システムのバージョンに合わせて適切な構造体のサイズを選択します。 ビデオ ミニポート ドライバーは、 VideoPortInitialize をもう一度呼び出す必要があります。 使用例については、Windows ドライバー開発キット (DDK) に含まれていたビデオ ミニポート ドライバーのサンプルを参照してください。

SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA

Windows 2000 以降 の VIDEO_HW_INITIALIZATION_DATA 構造体のサイズ (バイト単位)。

SIZE_OF_WXP_VIDEO_HW_INITIALIZATION_DATA

Windows VISTA 以降 の VIDEO_HW_INITIALIZATION_DATA 構造体のサイズ (バイト単位)。

SIZE_OF_WXP_VIDEO_PORT_CONFIG_INFO

Windows VISTA VIDEO_PORT_CONFIG_INFO 構造体のサイズ (バイト単位)。

DriverEntry はページング可能にする必要があります。

要件

対象プラットフォーム

デスクトップ

ヘッダー

Video.h (Video.h を含む)

Library

NtosKrnl.lib

[DLL]

NtosKrnl.exe

関連項目

HwVidFindAdapter

HwVidLegacyResources

VIDEO_HW_INITIALIZATION_DATA

VideoPortInitialize

VideoPortVerifyAccessRanges

VideoPortZeroMemory