ビデオ ミニポート ドライバー関数の 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 メンバーにドライバー固有の値とアダプター固有の値を入力します。 次のエントリ ポイントは、ミニポート ドライバーが提供するルーチンに設定する必要があります。
ドライバーのハードウェアがレガシ リソースをサポートしている場合、ドライバーはそれらを報告する必要があります。 DriverEntry は、ドライバーのコンパイル時にリソースの一覧がわかっている場合は、次の操作を行う必要があります。
- VIDEO_HW_INITIALIZATION_DATA 構造体の HwLegacyResourceList メンバーと HwLegacyResourceCount メンバー内のすべてのそのようなリソースを要求して報告します。 レガシ リソースは、デバイスの PCI 構成領域に一覧表示されていないリソースですが、デバイスによってデコードされます。
- ミニポート ドライバーで定義されている各 VIDEO_ACCESS_RANGE 構造体の RangePassive フィールドに適宜入力します。
レガシ リソースの一覧を実行時まで特定できない場合、ドライバーは代わりに HwVidLegacyResources 関数を実装してレポートする必要があります。
VideoPortInitialize を呼び出し、最初の 2 つのパラメーターとして Context1 と Context2 を渡し、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 |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示