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 集合的詳細資訊,請參閱 Video Miniport 驅動程式碼 I/O 控制程式碼。
StatusBlock
VRP 中STATUS_BLOCK結構的指標。 Miniport 驅動程式會填入 StatusBlock,並在完成每個 VRP 時傳回資訊。
InputBuffer
輸入緩衝區的指標,其中包含呼叫端傳入的資訊。 數據的 結構取決於 IoControlCode的值。 這個成員實際上指向與 OutputBuffer 所指示相同的緩衝區。
InputBufferLength
指定輸入緩衝區的位元組大小。
OutputBuffer
輸出緩衝區的指標,迷你埠驅動程式會將要傳回的數據傳送至呼叫端。 數據的 結構取決於 IoControlCode的值。 因為這個成員指向與 InputBuffer 相同的緩衝區,所以迷你埠驅動程式在 取用 InputBuffer 的所有輸入數據之前,不得在 OutputBuffer 中寫入輸出。
OutputBufferLength
指定輸出緩衝區的位元組大小。 迷你埠驅動程序無法放大此緩衝區。 如果指定的 OutputBuffer 太小而無法包含所有傳回的資訊,迷你埠驅動程式應該會設定 StatusBlock 的 Status 成員ERROR_INSUFFICIENT_BUFFER或ERROR_MORE_DATA。
規格需求
需求 | 值 |
---|---|
標頭 | video.h (包含 Video.h) |