콜백 함수 PMINIPORT_QUERY_DEVICE_ROUTINE(video.h)
HwVidQueryDeviceCallback 지정된 구성 데이터를 사용하여 어댑터를 구성하고 VIDEO_PORT_CONFIG_INFO 구조에서 누락된 구성 정보를 채울 수 있습니다.
통사론
PMINIPORT_QUERY_DEVICE_ROUTINE PminiportQueryDeviceRoutine;
VP_STATUS PminiportQueryDeviceRoutine(
PVOID HwDeviceExtension,
PVOID Context,
VIDEO_DEVICE_DATA_TYPE DeviceDataType,
PVOID Identifier,
ULONG IdentiferLength,
PVOID ConfigurationData,
ULONG ConfigurationDataLength,
PVOID ComponentInformation,
ULONG ComponentInformationLength
)
{...}
매개 변수
HwDeviceExtension
미니포트 드라이버의 어댑터별 스토리지 영역에 대한 포인터입니다. 자세한 내용은 디바이스 확장참조하세요.
Context
HwVidFindAdapter설정된 컨텍스트 값에 대한 포인터입니다. 일반적으로 VIDEO_PORT_CONFIG_INFO 버퍼 또는 해당 버퍼의 오프셋을 가리킵니다.
DeviceDataType
요청된 구성 정보의 유형을 지정합니다. 이 형식은 다음 중 하나입니다.
VpBusData
VpCmosData
VpControllerData
VpMachineData
VpMonitorData
x86 형식 비디오 어댑터의 미니포트 드라이버는 일반적으로 VpBusData 지정합니다( 특히 EISA 버스의 어댑터). VpControllerData 및 VpMonitorData 값은 ARC 규격 플랫폼에서만 의미가 있습니다. VpCmosData 및 VpMachineData 값은 거의 사용되지 않습니다.
Identifier
ARC 펌웨어에 의해 결정된 디바이스 이름에 대한 포인터입니다. 이 매개 변수는 ARC 규격 플랫폼에서만 사용해야 합니다. 그렇지 않으면 이 포인터는 NULL 합니다.
IdentiferLength
버퍼링된 식별자 문자열크기(바이트)를 지정합니다. 컴퓨터가 ARC 규격이 아닌 경우 값은 0이어야 합니다.
ConfigurationData
하드웨어 구성 데이터에 대한 포인터입니다. 이 데이터의 형식은 지정된 DeviceDataType 및 VIDEO_PORT_CONFIG_INFO AdapterInterfaceType 값에 의해 결정됩니다.
ConfigurationDataLength
ConfigurationData 버퍼의 크기(바이트)를 지정합니다. 실제로 이는 레지스트리에서 수집되어 VideoPortGetDeviceBase할당된 ConfigurationData 버퍼에 저장된 정보의 양을 나타냅니다.
ComponentInformation
시스템 사용을 위해 예약되어 있습니다.
ComponentInformationLength
시스템 사용을 위해 예약되어 있습니다.
반환 값
HwVidQueryDeviceCallback 작업의 상태를 반환합니다.
발언
HwVidQueryDeviceCallback 미니포트 드라이버의 HwVidFindAdapter 함수에서 VideoPortGetDeviceData 호출에서 전달됩니다. VideoPortGetDeviceData 레지스트리의 \Registry\Machine\Hardware\Description 노드에서 사용 가능한 구성 정보를 수집한 후 HwVidQueryDeviceCallback 호출합니다.
HwVidQueryDeviceCallback videoPortGetDeviceData 레지스트리에서 수집된 ConfigurationData검사합니다. 이 정보를 사용하여 어댑터를 구성하고 VIDEO_PORT_CONFIG_INFO 구조에서 누락된 구성 정보를 채울 수 있습니다.
HwVidQueryDeviceCallbackConfigurationData 있는 액세스 범위 값을 VideoPortReadXxx 전달하거나 VideoPortWrite Xxx 직접수 없습니다. 이러한 주소는 먼저 VideoPortGetDeviceBase호출하여 매핑되어야 합니다.
ConfigurationData 버퍼에 액세스 범위 정보가 없고 미니포트 드라이버의 HwVidFindAdapter 함수가 아직 VideoPortGetBusData 호출되지 않은 경우 (또는 videoPortGetAccessRanges ) HwVidQueryDeviceCallback 함수는 VideoPortGetBusData호출할 수 있습니다. VideoPortGetBusData 반환된 액세스 범위 정보도 VideoPortVerifyAccessRanges 전달되어야 합니다.
VideoPortVerifyAccessRanges NO_ERROR 반환하는 경우 미니포트 드라이버는 VideoPortGetDeviceBase 호출하여 VideoPortReadXxx 및/또는 VideoPortWriteXxx 함수를 호출하여 어댑터와 통신하는 데 사용할 수 있는 매핑된 논리 주소를 가져올 수 있습니다.
VideoPortGetDeviceData , VideoPortGetBusData또는 VideoPortGetAccessRanges 호출하여 버스 상대 액세스 범위 값을 가져올 수 없는 경우 미니포트 드라이버는 드라이버에서 제공하는 기본 액세스 범위 값 집합을 사용하여 어댑터를 찾을 수 있습니다. 이러한 경우 미니포트 드라이버는 미니포트 드라이버 제공 액세스 범위로 VideoPortVerifyAccessRanges 호출한 다음, VideoPortVerifyAccessRanges가 NO_ERROR 반환된 경우에만 VideoPortGetDeviceBase 호출해야. videoPortVerifyAccessRanges 호출에 실패하면 지정된 버스 상대 범위가 다른 디바이스의 드라이버에서 이미 사용되고 있습니다.
HwVidQueryDeviceCallback 페이징할 수 있어야 합니다.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 바탕 화면 |
헤더 | video.h(Video.h 포함) |