Win32 API 日本語リファレンス
ホーム › Devices.Display › PFN_DrvEscape

PFN_DrvEscape

コールバック

シグネチャ

DWORD PFN_DrvEscape(
    SURFOBJ* param0,
    DWORD param1,
    DWORD param2,
    void* param3,
    DWORD param4,
    void* param5
);

パラメーター

フィールド型
param0SURFOBJ*
param1DWORD
param2DWORD
param3void*
param4DWORD
param5void*

公式ドキュメント

DrvEscape 関数は、デバイス非依存のデバイスドライバーインターフェイスでは利用できない情報をデバイスから取得するために使用します。具体的な問い合わせ内容は、iEsc パラメーターの値によって決まります。

戻り値

戻り値は、iEsc パラメーターで指定された問い合わせによって異なります。問い合わせで指定された機能がサポートされていない場合、戻り値は 0 です。

解説(Remarks)

この関数内でデバイスへの描画を行うことはできません。特殊な描画のサポートには DrvDrawEscape を使用します。

GDI は、(悪意がある可能性のある) クライアントアプリケーションのデータをドライバーへ直接渡します。そのため、DrvEscape 関数はすべての入力引数を検証しなければなりません。具体的には、この関数は次の処理を行う必要があります。

Microsoft は、エスケープコードとして 0 から 0X10000 までの範囲を予約しています。サードパーティのベンダーは、この範囲より上のエスケープコードを自由に選んで使用できます。ドライバー固有のエスケープコードは他のディスプレイドライバーで使用されているものと競合する可能性があるため、ディスプレイドライバーはエスケープを処理する前にエスケープのパラメーターを検証することが重要です。その方法の一つとして、入力ブロックと出力ブロックのサイズ、および入力ブロックのパラメーターを検証する方法があります。さらに安全性を高めるため、ドライバーは「マジック」値も用意し、すべての入力ブロックでその値が適切に設定されていることを要求することで、入力ブロックが信頼できるソースから渡されたものであることを保証してください。

DrvEscape は、すべてのドライバーで省略可能です。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)