Condividi tramite


Creare un driver client di notifica hardware

Questa sezione fornisce indicazioni generali sullo sviluppo di un driver client di notifica hardware che utilizza l'estensione della classe KMDF fornita da Microsoft.

  1. Creare un file per l'implementazione del driver client che collega A Mshwnclxstub.lib e include le intestazioni hwn.h e hwnclx.h.

  2. Definire le istanze delle funzioni di callback della classe di notifica hardware e kmDF necessarie. In particolare, è necessario implementare e registrare queste funzioni di callback, come illustrato nel codice di esempio seguente.

    DRIVER_INITIALIZE DriverEntry;
    EVT_WDF_DRIVER_DEVICE_ADD HwnClientEvtDeviceAdd;
    HWN_CLIENT_INITIALIZE_DEVICE HwnClientInitializeDevice;
    HWN_CLIENT_UNINITIALIZE_DEVICE HwnClientUnInitializeDevice;
    HWN_CLIENT_QUERY_DEVICE_INFORMATION HwnClientQueryDeviceInformation;
    HWN_CLIENT_START_DEVICE HwnClientStartDevice;
    HWN_CLIENT_STOP_DEVICE HwnClientStopDevice;
    HWN_CLIENT_SET_STATE HwnClientSetState;
    HWN_CLIENT_GET_STATE HwnClientGetState;
    
  3. Implementare la routine DriverEntry , ovvero il punto di ingresso del driver client e responsabile dell'inizializzazione. Per il driver client di notifica hardware, questa funzione deve gestire quanto segue:

  4. Implementare la funzione EVT_WDF_DRIVER_DEVICE_ADD , responsabile dell'esecuzione di operazioni di inizializzazione del dispositivo quando il gestore PnP segnala l'esistenza di un dispositivo. Per il driver client di notifica hardware, questa funzione deve gestire quanto segue:

  5. Implementare la funzione HWN_CLIENT_INITIALIZE_DEVICE definita, chiamata dall'estensione della classe per preparare il controller di notifica hardware per l'uso.

  6. Implementare la funzione di HWN_CLIENT_UNINITIALIZE_DEVICE definita, chiamata dall'estensione della classe per annullare l'inizializzazione del controller di notifica hardware.

  7. Implementare la funzione HWN_CLIENT_QUERY_DEVICE_INFORMATION definita, chiamata dall'estensione della classe. Questa funzione è responsabile del recupero degli attributi di un componente di notifica hardware.

  8. Implementare la funzione HWN_CLIENT_START_DEVICE definita, chiamata dall'estensione della classe. Questa funzione è responsabile dell'avvio del controller di notifica hardware e dell'allocazione delle risorse ACPI per il driver client.

  9. Implementare la funzione HWN_CLIENT_STOP_DEVICE definita, chiamata dall'estensione della classe. Questa funzione è responsabile dell'arresto del controller di notifica hardware e del rilascio delle risorse ACPI usate dal driver client.

  10. Implementare la HWN_CLIENT_SET_STATE definita, chiamata dall'estensione della classe. Questa funzione è responsabile dell'impostazione degli stati del componente di notifica hardware.

  11. Implementare la HWN_CLIENT_GET_STATE definita, chiamata dall'estensione della classe. Questa funzione è responsabile del recupero dei valori correnti dei componenti di notifica hardware. Quando il buffer di input è NULL, ovvero l'utente non ha specificato lo stato di notifica hardware specifico, questa funzione deve restituire le informazioni sullo stato per tutti i componenti di notifica hardware.

Notifiche hardware