drvEscape 函式 (winddi.h)
DrvEscape 函式可用來從裝置擷取在裝置獨立設備驅動器介面中無法使用的資訊;特定查詢取決於 iEsc 參數的值。
語法
ULONG DrvEscape(
[in] SURFOBJ *pso,
[in] ULONG iEsc,
[in] ULONG cjIn,
[in] PVOID pvIn,
[in] ULONG cjOut,
[out] PVOID pvOut
);
參數
[in] pso
SURFOBJ 結構的指標,描述呼叫導向的介面。
[in] iEsc
指定查詢。 其他參數的意義取決於此值。 QUERYESCSUPPORT 是唯一預先定義的值;它會查詢驅動程式是否支援特定的逸出函式。 在此情況下, pvIn 會指向逸出函式編號; 會忽略 cjOut 和 pvOut 。 如果支援指定的函式,則傳回值為非零。
[in] cjIn
指定 pvIn 所指向緩衝區的大小,以位元組為單位。
[in] pvIn
呼叫之輸入數據的指標。 輸入數據的格式取決於 iEsc 參數指定的查詢。
[in] cjOut
指定 pvOut 所指向緩衝區的大小,以位元組為單位。
[out] pvOut
輸出緩衝區的指標。 輸出數據的格式取決於 iEsc 參數所指定的查詢。
傳回值
傳回值取決於 iEsc 參數所指定的查詢。 如果不支持查詢中指定的函式,則傳回值為零。
備註
此函式中不允許在裝置上進行繪圖。 DrvDrawEscape 是用於特製化繪圖支援。
GDI 會將數據直接從 (惡意) 用戶端應用程式傳遞至驅動程式,這表示 DrvEscape 函式必須驗證所有輸入自變數。 具體而言,此函式必須:
- 確認 iEsc 參數中收到的值代表有效的查詢。
- 確認輸入緩衝區的大小 (cjIn 參數中的值) 對指定的查詢有效。
- 確認 pvIn 參數指向的緩衝區內容對指定的查詢有效。
- 確認指定輸出緩衝區的大小 (cjOut 參數中的值) 對指定的查詢有效。
DrvEscape 是所有驅動程式的選擇性專案。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | winddi.h (包含Winddi.h) |