typedef struct _VIDEO_REQUEST_PACKET {
ULONG IoControlCode;
PSTATUS_BLOCK StatusBlock;
PVOID InputBuffer;
ULONG InputBufferLength;
PVOID OutputBuffer;
ULONG OutputBufferLength;
} VIDEO_REQUEST_PACKET, *PVIDEO_REQUEST_PACKET;
A pointer to a VIDEO_REQUEST_PACKET is passed to the miniport driver’s HwVidStartIO function by the video port driver. The port driver sets up the VRP from the IRP sent in response to a GDI call to EngDeviceIoControl. Usually, the corresponding display driver makes the call to EngDeviceIoControl when it needs support from the port-miniport driver pair. The port driver calls the miniport driver with the VRP to process the given IOCTL_VIDEO_XXX request.
Members
IoControlCode
Specifies an IOCTL_VIDEO_XXX value passed to the EngDeviceIoControl function by the caller and sent to the port driver in an IRP. For more information about the set of system-defined IOCTL_VIDEO_XXX that miniport drivers must support, see also Part II of this manual.
StatusBlock
Points to a STATUS_BLOCK structure in the VRP. StatusBlock is filled in by the miniport driver with return information upon completion of each VRP.
InputBuffer
Points to an input buffer that contains information passed in by the caller. The structure for the data depends on the value of IoControlCode. This member actually points to the same buffer as that indicated by OutputBuffer.
InputBufferLength
Specifies the size in bytes of the input buffer.
OutputBuffer
Points to an output buffer into which the miniport driver transfers data to be returned to the caller. The structure for the data depends on the value of IoControlCode. Because this member points to the same buffer as InputBuffer, a miniport driver must not write output in the OutputBuffer before it has consumed all input data from the InputBuffer.
OutputBufferLength
Specifies the size in bytes of the output buffer. A miniport driver cannot enlarge this buffer. A miniport driver should set the Status member of the StatusBlock with ERROR_INSUFFICIENT_BUFFER or ERROR_MORE_DATA if the given OutputBuffer is too small to contain all the returned information.
See Also