Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
[Si applica solo a KMDF]
Il metodo WdfPdoRequestEject informa il framework che un dispositivo specificato sta per essere espulso dalla sua stazione di ancoraggio.
Sintassi
void WdfPdoRequestEject(
[in] WDFDEVICE Device
);
Parametri
[in] Device
Handle per un oggetto dispositivo framework che rappresenta l'oggetto dispositivo fisico (PDO) del dispositivo.
Valore restituito
Nessuno
Osservazioni:
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
Un autista di autobus può chiamare WdfPdoRequestEject o WdfChildListRequestChildEject per segnalare che il driver ha rilevato un tentativo di espellere uno dei dispositivi figlio enumerati dalla stazione di ancoraggio del dispositivo. Ad esempio, il driver potrebbe rilevare che un utente ha premuto un pulsante di espulsione.
Se l'oggetto dispositivo framework per il PDO del dispositivo è disponibile, il driver può chiamare WdfPdoRequestEject. Se il driver usa l'enumerazione dinamica del bus e se la descrizione dell'identificazione del dispositivo è disponibile, il driver può chiamare WdfChildListRequestChildEject.
Per altre informazioni su WdfPdoRequestEject e WdfChildListRequestChildEject, vedere Supporto di dispositivi eiettabili.
Esempi
Nell'esempio di codice seguente viene eseguita una ricerca in un elenco di dispositivi figlio in modo che corrisponda a un numero di serie specificato. Quando l'esempio trova l'elemento figlio corretto, chiama WdfPdoRequestEject per indicare che l'elemento figlio viene espulso. Questo esempio è stato tratto dal Tostapane driver di bus di esempio e semplificato.
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);
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
versione minima di KMDF | 1.0 |
intestazione | wdfpdo.h (include Wdf.h) |
Biblioteca | Wdf01000.sys (vedere Controllo delle versioni della libreria framework). |
IRQL | <= LIVELLO_DI_INVIO |
regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |