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 设置 StatusBlockStatus 成员,以包含所有返回的信息。

要求

要求 价值
标头 video.h (include Video.h)

另请参阅

HwVidStartIO

STATUS_BLOCK

视频微型端口驱动程序 I/O 控制代码