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) |