WdfPdoRequestEject, fonction (wdfpdo.h)

[S’applique uniquement à KMDF]

La méthode WdfPdoRequestEject informe l’infrastructure qu’un appareil spécifié est sur le point d’être éjecté de sa station d’accueil.

Syntaxe

void WdfPdoRequestEject(
  [in] WDFDEVICE Device
);

Paramètres

[in] Device

Handle d’un objet d’appareil framework qui représente l’objet d’appareil physique (PDO) de l’appareil.

Valeur de retour

None

Remarques

Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.

Un pilote de bus peut appeler WdfPdoRequestEject ou WdfChildListRequestChildEject pour signaler que le pilote a détecté une tentative d’éjection de l’un de ses appareils enfants énumérés à partir de la station d’accueil de l’appareil. Par exemple, le pilote peut détecter qu’un utilisateur a poussé un bouton d’éjection.

Si l’objet d’appareil framework pour le PDO de l’appareil est disponible, le pilote peut appeler WdfPdoRequestEject. Si le pilote utilise l’énumération de bus dynamique et si la description d’identification de l’appareil est disponible, le pilote peut appeler WdfChildListRequestChildEject.

Pour plus d’informations sur WdfPdoRequestEject et WdfChildListRequestChildEject, consultez Prise en charge des appareils éjectables.

Exemples

L’exemple de code suivant recherche une liste d’appareils enfants pour en trouver un qui correspond à un numéro de série spécifié. Lorsque l’exemple trouve l’enfant correct, il appelle WdfPdoRequestEject pour indiquer que l’enfant est éjecté. Cet exemple a été extrait de l’exemple de pilote de bus De grille-pain et simplifié.

WDFDEVICE  hChild = NULL;
NTSTATUS  status = STATUS_INVALID_PARAMETER;
PPDO_DEVICE_DATA  pdoData;

WdfFdoLockStaticChildListForIteration(Device);

while ((hChild = WdfFdoRetrieveNextStaticChild(
                                               Device, 
                                               hChild,
                                               WdfRetrieveAddedChildren
                                               )) != NULL) {
    //
    // Obtain device object context space, and check the
    // stored serial number.
    //
    pdoData = PdoGetData(hChild);
    if (SerialNo == pdoData->SerialNo) {
        status = STATUS_SUCCESS;
        WdfPdoRequestEject(hChild);
    }
}
WdfFdoUnlockStaticChildListFromIteration(Device);

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfpdo.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (consultez Gestion de version de la bibliothèque d’infrastructure.)
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration