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 函数并在 IRP 代码中发送到视频端口驱动程序的 IOCTL_VIDEO_XXX 值。 有关微型端口驱动程序必须支持的系统定义IOCTL_VIDEO_XXX 集的详细信息,请参阅 视频微型端口驱动程序 I/O 控制代码。
StatusBlock
指向 VRP 中STATUS_BLOCK结构的指针。 每个 VRP 完成后,微型端口驱动程序使用返回信息填充 StatusBlock。
InputBuffer
指向包含调用方传入的信息的输入缓冲区的指针。 数据的结构取决于 IoControlCode 的值。 此成员实际上指向 OutputBuffer 指示的同一缓冲区。
InputBufferLength
指定输入缓冲区的大小(以字节为单位)。
OutputBuffer
指向输出缓冲区的指针,微型端口驱动程序会将要返回给调用方的数据传输到该缓冲区。 数据的结构取决于 IoControlCode 的值。 由于此成员指向 与 InputBuffer 相同的缓冲区,因此微型端口驱动程序在使用 InputBuffer 中的所有输入数据之前,不得在 OutputBuffer 中写入输出。
OutputBufferLength
指定输出缓冲区的大小(以字节为单位)。 微型端口驱动程序无法放大此缓冲区。 如果给定的OutputBuffer 太小而无法包含所有返回的信息,微型端口驱动程序应使用 ERROR_INSUFFICIENT_BUFFER 或 ERROR_MORE_DATA 设置 StatusBlock 的 Status 成员。
要求
要求 | 值 |
---|---|
Header | video.h (包括 Video.h) |