Partager via


WdfDeviceInitFree, fonction (wdfdevice.h)

[S’applique uniquement à KMDF]

La méthode WdfDeviceInitFree libère une structure WDFDEVICE_INIT .

Syntaxe

void WdfDeviceInitFree(
  [in] PWDFDEVICE_INIT DeviceInit
);

Paramètres

[in] DeviceInit

Pointeur vers une structure WDFDEVICE_INIT .

Valeur de retour

None

Remarques

Si votre pilote reçoit une structure WDFDEVICE_INIT d’un appel à WdfPdoInitAllocate ou WdfControlDeviceInitAllocate, et si le pilote rencontre par la suite une erreur lorsqu’il appelle une méthode d’initialisation d’objet d’appareil ou WdfDeviceCreate, le pilote doit appeler WdfDeviceInitFree.

Votre pilote ne doit pas appeler WdfDeviceInitFree après avoir appelé WdfDeviceCreate avec succès.

Votre pilote n’a pas besoin d’appeler WdfDeviceInitFree s’il a reçu la structure WDFDEVICE_INIT comme entrée dans sa fonction de rappel EvtDriverDeviceAdd , car l’infrastructure supprime la structure après le retour de la fonction de rappel.

Pour plus d’informations sur l’appel de WdfDeviceCreate, consultez Création d’un objet d’appareil framework.

Exemples

L’exemple de code suivant appelle WdfDeviceInitFree si un appel à WdfPdoInitAssignRawDevice échoue.

NTSTATUS  status;

status = WdfPdoInitAssignRawDevice(
                                   pDeviceInit,
                                   &GUID_DEVCLASS_KEYBOARD
                                   );
if (!NT_SUCCESS(status)) {
    WdfDeviceInitFree(pDeviceInit);
    pDeviceInit = NULL;
    return STATUS;
}

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfdevice.h (include Wdf.h)
Bibliothèque Wdf01000.sys (consultez Gestion de version de la bibliothèque d’infrastructure.)
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI DoubleDeviceInitFree(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeDeviceCreateType2(kmdf), InitFreeDeviceCreateType4(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf), PdoInitFreeDeviceCreateType2(kmdf), PdoInitFreeDeviceCreateType4(kmdf)

Voir aussi

WdfDeviceCreate