Condividi tramite


DriverEntry della funzione driver Video Miniport

DriverEntry è il punto di ingresso iniziale nel driver miniport video.

Sintassi

ULONG DriverEntry(
  _In_ PVOID Context1,
  _In_ PVOID Context2
);

Parametri

Context1 [in] Puntatore a un valore di contesto con cui il driver miniport deve chiamare VideoPortInitialize. Questo valore di contesto identifica l'oggetto driver creato dal sistema per questo driver miniport.

Context2 [in] Puntatore a un secondo valore di contesto con cui il driver miniport deve chiamare VideoPortInitialize. Questo valore di contesto identifica il percorso del Registro di sistema per questo driver miniport.

Valore restituito

DriverEntry restituisce il valore restituito da VideoPortInitialize.

Commenti

Ogni driver miniport deve avere una funzione denominata in modo esplicito DriverEntry per poter essere caricata. DriverEntry viene chiamato direttamente dal sistema di I/O.

DriverEntry deve eseguire i passaggi seguenti:

  • Allocare memoria nello stack per una struttura VIDEO_HW_INITIALIZATION_DATA e chiamare VideoPortZeroMemory per inizializzarlo zero.

  • Specificare i valori specifici del driver e dell'adattatore nei membri VIDEO_HW_INITIALIZATION_DATA, inclusi i punti di ingresso del driver miniport. I punti di ingresso seguenti devono essere impostati su una routine fornita dal driver miniport:

    HwVidFindAdapter

    HwVidInitialize

    HwVidStartIO

    HwVidInterrupt

    HwVidQueryInterface

    HwVidGetVideoChildDescriptor

    HwVidGetPowerState

    HwVidSetPowerState

  • Se l'hardware del driver supporta risorse legacy, il driver deve segnalarle. DriverEntry deve eseguire le operazioni seguenti se l'elenco di risorse è noto in fase di compilazione del driver:

    • Richiedere e segnalare tutte queste risorse nei membri HwLegacyResourceList e HwLegacyResourceCount della struttura VIDEO_HW_INITIALIZATION_DATA . Le risorse legacy sono quelle risorse non elencate nello spazio di configurazione PCI del dispositivo, ma decodificate dal dispositivo.
    • Compilare il campo RangePassive di conseguenza per ogni struttura VIDEO_ACCESS_RANGE definita nel driver miniport.

    Se l'elenco di risorse legacy non può essere determinato fino al runtime, il driver deve invece implementare una funzione HwVidLegacyResources per segnalarle.

  • Chiamare VideoPortInitialize passando Context1 e Context2 come primi due parametri, un puntatore alla struttura VIDEO_HW_INITIALIZATION_DATA come terzo parametro e NULL come quarto parametro.

DriverEntry deve propagare il valore restituito da VideoPortInitialize al chiamante.

Se DriverEntry richiede risorse, deve includere solo le risorse decodificate dall'hardware ma non richieste da PCI. Il driver miniport può "recuperare" di nuovo queste risorse legacy nelle chiamate successive a VideoPortVerifyAccessRanges; Tuttavia, il driver della porta video ignorerà solo le richieste per qualsiasi risorsa richiesta in precedenza. Il risparmio energia e l'ancoraggio verranno disabilitati nel sistema se il driver miniport tenta di richiedere un intervallo di accesso legacy in VideoPortVerifyAccessRanges non richiesto in precedenza nel membro HwLegacyResourceList della struttura VIDEO_HW_INITIALIZATION_DATA durante DriverEntry (o in HwVidLegacyResources, se implementato).

Per i driver di Microsoft Windows 2000 e versioni successive che supportano anche i computer che eseguono Windows NT 4.0, le costanti di configurazione hardware sono definite in video.h. Queste costanti sono descritte nella tabella seguente.

Costante Significato

SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO

Dimensione, in byte, della struttura VIDEO_PORT_CONFIG_INFO di Windows NT 4.0.

SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA

Dimensione, in byte, della struttura VIDEO_HW_INITIALIZATION_DATA di Windows NT 4.0. Se VideoPortInitialize ha esito negativo, il driver miniport video deve impostare il membro HwInitDataSize della struttura VIDEO_HW_INITIALIZATION_DATA sulle dimensioni della versione di Windows 2000 (e versioni successive) di questa struttura o della versione di Windows NT 4.0. Scegliere le dimensioni della struttura appropriate in modo che corrispondano alla versione del sistema operativo in cui verrà eseguito il driver miniport. Il driver video miniport dovrebbe quindi chiamare nuovamente VideoPortInitialize . Per un esempio d'uso, vedere gli esempi di driver miniport video inclusi in Windows Driver Development Kit (DDK).

SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA

Dimensioni, in byte, della struttura di Windows 2000 e versioni successive VIDEO_HW_INITIALIZATION_DATA .

SIZE_OF_WXP_VIDEO_HW_INITIALIZATION_DATA

Dimensioni, in byte, della struttura di Windows Vista e versioni successive VIDEO_HW_INITIALIZATION_DATA .

SIZE_OF_WXP_VIDEO_PORT_CONFIG_INFO

Dimensioni, in byte, della struttura VIDEO_PORT_CONFIG_INFO di Windows Vista.

DriverEntry deve essere reso pageable.

Requisiti

Piattaforma di destinazione

Desktop

Intestazione

Video.h (includere Video.h)

Libreria

NtosKrnl.lib

DLL

NtosKrnl.exe

Vedere anche

HwVidFindAdapter

HwVidLegacyResources

VIDEO_HW_INITIALIZATION_DATA

VideoPortInitialize

VideoPortVerifyAccessRanges

VideoPortZeroMemory