Condividi tramite


Responsabilità obbligatorie di DriverEntry

Le responsabilità obbligatorie e ordinate di una routine DriverEntry sono le seguenti:

  1. Fornire punti di ingresso per le routine standard del conducente.

    Il driver archivia i punti di ingresso per molte delle routine standard nell'oggetto driver o nell'estensione del driver. Tali punti di ingresso includono quelli per la routine AddDevice del driver, le routine dispatch, la routine StartIo e la routine Unload . Ad esempio, un driver imposterà i punti di ingresso per le routine AddDevice, DispatchPnP e DispatchPower con istruzioni come le seguenti (Xxx è un segnaposto per un prefisso fornito dal fornitore che identifica il driver):

        :
    DriverObject->DriverExtension->AddDevice = XxxAddDevice;
    DriverObject->MajorFunction[IRP_MJ_PNP] = XxxDispatchPnp;
    DriverObject->MajorFunction[IRP_MJ_POWER] = XxxDispatchPower;
        :
    

    Le routine standard aggiuntive, ad esempio isr o routine IoCompletion , vengono specificate chiamando routine di supporto del sistema. Per altre informazioni, vedere le descrizioni delle singole routine del driver standard.

  2. Creare e/o inizializzare vari oggetti, tipi o risorse a livello di driver usati dal driver. Si noti che la maggior parte delle routine standard usa oggetti per ogni dispositivo, pertanto i driver devono configurare tali oggetti nelle routine AddDevice o dopo aver ricevuto una richiesta di IRP_MN_START_DEVICE .

    Se il driver ha un thread dedicato al dispositivo o attende su qualsiasi oggetto dispatcher definito dal kernel, la routine DriverEntry potrebbe inizializzare gli oggetti dispatcher del kernel. A seconda del modo in cui il driver usa gli oggetti, potrebbe invece eseguire questa attività nella routine AddDevice o dopo aver ricevuto una richiesta di IRP_MN_START_DEVICE .

  3. Liberare qualsiasi memoria allocata e non è più necessaria.

  4. Restituisce NTSTATUS che indica se il driver è stato caricato correttamente e può accettare ed elaborare le richieste dal gestore PnP per configurare, aggiungere e avviare i dispositivi. Vedere i valori restituiti di DriverEntry.