Delen via


Een callbacksynchronisatiemodus opgeven

Waarschuwing

UMDF 2 is de nieuwste versie van UMDF en vervangt UMDF 1. Alle nieuwe UMDF-stuurprogramma's moeten worden geschreven met UMDF 2. Er worden geen nieuwe functies toegevoegd aan UMDF 1 en er is beperkte ondersteuning voor UMDF 1 op nieuwere versies van Windows 10. Universele Windows-stuurprogramma's moeten UMDF 2 gebruiken.

De gearchiveerde UMDF 1-voorbeelden vindt u in de Windows 11 versie 22H2 - update van stuurprogrammavoorbeelden van mei 2022.

Zie Aan de slag met UMDF-voor meer informatie.

Het stuurprogramma kan opgeven hoe de callback-functies worden aangeroepen door het framework. Het stuurprogramma geeft een synchronisatiemodus (of vergrendeling) voor een apparaat op voordat de IWDFDriver::CreateDevice-methode wordt aangeroepen om een apparaatobject te maken voor het apparaat. Als u de synchronisatiemodus wilt opgeven, moet het stuurprogramma de methode IWDFDeviceInitialize::SetLockingConstraint aanroepen. Het stuurprogramma ontvangt een aanwijzer naar de IWDFDeviceInitialize interface wanneer de IDriverEntry::OnDeviceAdd methode wordt aangeroepen om het apparaat toe te voegen aan het systeem.

Het stuurprogramma kan een van de volgende waarden opgeven uit het WDF_CALLBACK_CONSTRAINT opsommingstype in de parameter LockType van IWDFDeviceInitialize::SetLockingConstraint om de vergrendelingsmodus te identificeren. Het type beperking (of vergrendeling) dat is opgegeven, is afhankelijk van hoeveel parallellisme het hardwareapparaat kan misbruiken en hoeveel het stuurprogramma kan verwerken.

Waarde Betekenis

Geen (0)

Geeft aan dat geen callbackfuncties in de driver worden gesynchroniseerd.

WdfDeviceLevel (1)

Geeft aan dat alle callback-functies voor wachtrijen in het stuurprogramma worden gesynchroniseerd.

Opmerking Als het stuurprogramma de functie IWDFDeviceInitialize::SetLockingConstraint niet aanroept om een waarde op te geven, stelt het framework de standaardwaarde van deze eigenschap in op WdfDeviceLevel.

Beperkingen zijn alleen van toepassing op callback-functies voor wachtrijen en niet op Plug en Play (PnP) en callback-functies voor energiebeheer. Callback-functies voor wachtrijen zijn onder andere:

Callback-functies voor aanvraagvoltooiing (IRequestCallbackRequestCompletion::OnCompletion) zijn geen wachtrij-callbackfuncties. Daarom worden ze niet gesynchroniseerd.