다음을 통해 공유


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가 너무 작아서 반환된 모든 정보를 포함할 수 없는 경우 statusBlockStatus 멤버를 ERROR_INSUFFICIENT_BUFFER 또는 ERROR_MORE_DATA 설정해야 합니다.

요구 사항

요구 사항
헤더 video.h(Video.h 포함)

추가 정보

HwVidStartIO

STATUS_BLOCK

비디오 미니포트 드라이버 I/O 제어 코드