VIDEO_REQUEST_PACKET结构(video.h)
指向VIDEO_REQUEST_PACKET结构的指针通过视频端口驱动程序传递给微型端口驱动程序的 HwVidStartIO 函数。 视频端口驱动程序设置来自 IRP 代码的 VRP(请参阅 IRP 主要函数代码),以响应对 EngDeviceIoControl的 GDI 调用。 通常,当需要视频端口微型端口驱动程序对的支持时,相应的显示驱动程序调用 EngDeviceIoControl。 视频端口驱动程序使用 VRP 调用微型端口驱动程序,以处理给定的 IOCTL_VIDEO_XXX 请求。
语法
typedef struct _VIDEO_REQUEST_PACKET {
ULONG IoControlCode;
PSTATUS_BLOCK StatusBlock;
PVOID InputBuffer;
ULONG InputBufferLength;
PVOID OutputBuffer;
ULONG OutputBufferLength;
} VIDEO_REQUEST_PACKET, *PVIDEO_REQUEST_PACKET;
成员
IoControlCode
指定调用方传递给 EngDeviceIoControl 函数的 IOCTL_VIDEO_XXX 值,并在 IRP 代码中发送到视频端口驱动程序。 有关微型端口驱动程序必须支持的系统定义IOCTL_VIDEO_XXX 集的详细信息,请参阅 视频微型端口驱动程序 I/O 控制代码。
StatusBlock
指向 VRP中的STATUS_BLOCK结构的指针。 StatusBlock 由微型端口驱动程序填充,并在每个 VRP 完成后返回信息。
InputBuffer
指向包含调用方传入的信息的输入缓冲区的指针。 数据的结构取决于 IoControlCode的值。 此成员实际上指向 OutputBuffer所指示的缓冲区。
InputBufferLength
指定输入缓冲区的大小(以字节为单位)。
OutputBuffer
指向微型端口驱动程序将数据传输到调用方中的输出缓冲区的指针。 数据的结构取决于 IoControlCode 的值。 由于此成员指向与 InputBuffer相同的缓冲区,因此微型端口驱动程序在 OutputBuffer 中不得写入输出,然后才使用来自 InputBuffer的所有输入数据。
OutputBufferLength
指定输出缓冲区的大小(以字节为单位)。 微型端口驱动程序无法放大此缓冲区。 如果给定的 OutputBuffer 太小,则微型端口驱动程序应使用 ERROR_INSUFFICIENT_BUFFER 或 ERROR_MORE_DATA 设置 StatusBlock 的 Status 成员,以包含所有返回的信息。
要求
要求 | 价值 |
---|---|
标头 | video.h (include Video.h) |