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)

另请参阅

HwVidStartIO

STATUS_BLOCK

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