VIDEO_REQUEST_PACKET 구조체(video.h)
VIDEO_REQUEST_PACKET 구조체에 대한 포인터는 비디오 포트 드라이버에 의해 미니포트 드라이버의 HwVidStartIO 함수에 전달됩니다. 비디오 포트 드라이버는 EngDeviceIoControl에 대한 GDI 호출에 대한 응답으로 전송된 IRP 코드(IRP 주 함수 코드 참조)에서 VRP를 설정합니다. 일반적으로 해당 디스플레이 드라이버는 비디오 포트 미니포트 드라이버 쌍의 지원이 필요할 때 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 구조체에 대한 포인터입니다. 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 포함) |