PMINIPORT_QUERY_DEVICE_ROUTINE funzione di callback (video.h)
HwVidQueryDeviceCallback usa i dati di configurazione specificati per configurarne l'adattatore e, possibilmente, per inserire informazioni di configurazione mancanti nella struttura VIDEO_PORT_CONFIG_INFO.
Sintassi
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
)
{...}
Parametri
HwDeviceExtension
Puntatore all'area di archiviazione per adattatore del driver miniport. Per altre informazioni, vedere Device Extensions.
Context
Puntatore al valore di contesto impostato da HwVidFindAdapter. In genere, punta al buffer VIDEO_PORT_CONFIG_INFO o a un offset in tale buffer.
DeviceDataType
Specifica il tipo di informazioni di configurazione richieste, che è una delle seguenti:
VpBusData
VpCmosData
VpControllerData
VpMachineData
VpMonitorData
I driver miniport di schede video di tipo x86 specificano in genere VpBusData, in particolare per gli adattatori sugli autobus EISA. I valori VpControllerData e VpMonitorData hanno significato solo sulle piattaforme conformi ad ARC. I valori VpCmosData e VpMachineData vengono usati raramente.
Identifier
Puntatore al nome del dispositivo come determinato dal firmware ARC. Questo parametro deve essere usato solo nelle piattaforme conformi ad ARC. In caso contrario, questo puntatore deve essere NULL.
IdentiferLength
Specifica le dimensioni in byte dell'identificatore di memorizzato nel buffer stringa. Il valore deve essere zero se il computer non è conforme ad ARC.
ConfigurationData
Puntatore ai dati di configurazione hardware. Il formato di questi dati è determinato dal DeviceDataType specificato e dal valore AdapterInterfaceType nel VIDEO_PORT_CONFIG_INFO.
ConfigurationDataLength
Specifica le dimensioni in byte del buffer di ConfigurationData. In effetti, indica la quantità di informazioni raccolte dal Registro di sistema e archiviate nel buffer ConfigurationData allocato da VideoPortGetDeviceBase.
ComponentInformation
Riservato per l'uso del sistema.
ComponentInformationLength
Riservato per l'uso del sistema.
Valore restituito
HwVidQueryDeviceCallback restituisce lo stato dell'operazione.
Osservazioni
HwVidQueryDeviceCallback viene passata una chiamata a VideoPortGetDeviceData dalla funzione HwVidFindAdapter del driver miniport. VideoPortGetDeviceData chiama HwVidQueryDeviceCallback dopo aver raccolto le informazioni di configurazione disponibili nel nodo \Registry\Machine\Hardware\Description del Registro di sistema.
HwVidQueryDeviceCallback esamina il ConfigurationData, raccolto dal Registro di sistema da VideoPortGetDeviceData. Usa queste informazioni per configurare l'adattatore e, possibilmente, per inserire le informazioni di configurazione mancanti nella struttura VIDEO_PORT_CONFIG_INFO.
HwVidQueryDeviceCallback non può passare i valori dell'intervallo di accesso presenti nel ConfigurationData a qualsiasi VideoPortReadXxx o VideoPortWriteXxx direttamente; questi indirizzi devono essere prima mappati chiamando VideoPortGetDeviceBase.
Se il buffer di ConfigurationData non dispone di informazioni sull'intervallo di accesso e la funzione del driver miniport HwVidFindAdapter non ha già chiamato VideoPortGetBusData (o VideoPortGetAccessRanges), la funzione HwVidQueryDeviceCallback può chiamare VideoPortGetBusData. Anche le informazioni sull'intervallo di accesso restituite da VideoPortGetBusData devono essere passate a VideoPortVerifyAccessRanges.
Se VideoPortVerifyAccessRanges restituisce NO_ERROR, il driver miniport può chiamare VideoPortGetDeviceBase per ottenere indirizzi logici mappati che può usare per comunicare con la scheda chiamando le funzioni VideoPortReadXxx e/o VideoPortWriteXxx.
Se non riesce a ottenere i valori degli intervalli di accesso relativi al bus chiamando VideoPortGetDeviceData, VideoPortGetBusDatao VideoPortGetAccessRanges, un driver miniport può usare un set di valori di intervallo di accesso predefiniti forniti dal driver per trovare la scheda. In queste circostanze, il driver miniport deve chiamare VideoPortVerifyAccessRanges con gli intervalli di accesso forniti dal driver miniport e quindi chiamare VideoPortGetDeviceBase solo se VideoPortVerifyAccessRanges restituito NO_ERROR. Se una chiamata a VideoPortVerifyAccessRanges ha esito negativo, un determinato intervallo relativo al bus è già in uso dal driver di un altro dispositivo.
HwVidQueryDeviceCallback deve essere reso pageable.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | video.h (includere Video.h) |