Функция WdfPdoRequestEject (wdfpdo.h)
[Применимо только к KMDF]
Метод WdfPdoRequestEject информирует платформу о том, что указанное устройство будет удалено из док-станции.
Синтаксис
void WdfPdoRequestEject(
[in] WDFDEVICE Device
);
Параметры
[in] Device
Дескриптор объекта устройства платформы, представляющий физический объект устройства (PDO).
Возвращаемое значение
Нет
Замечания
Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Водитель шины может вызвать WdfPdoRequestEject или WdfChildListRequestChildEject сообщить о том, что водитель обнаружил попытку извлечь одно из перечисленных дочерних устройств из док-станции устройства. Например, драйвер может обнаружить, что пользователь нажал кнопку извлечения.
Если объект устройства платформы для PDO устройства доступен, драйвер может вызвать WdfPdoRequestEject. Если драйвер использует динамическое перечисление шины и если доступно описание идентификации устройства, драйвер может вызвать WdfChildListRequestChildEject.
Дополнительные сведения о WdfPdoRequestEject и WdfChildListRequestChildEjectсм. в поддержкедоступных устройств.
Примеры
В следующем примере кода выполняется поиск списка дочерних устройств, чтобы найти его, соответствующий указанному серийному номеру. При обнаружении правильного дочернего элемента вызывается WdfPdoRequestEject, чтобы указать, что дочерний объект удаляется. Этот пример был взят из тостера пример водителя автобуса и упрощен.
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);
Требования
Требование | Ценность |
---|---|
целевая платформа | универсальный |
минимальная версия KMDF | 1.0 |
Заголовок | wdfpdo.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (см. управление версиями библиотеки Платформы).) |
IRQL | <= DISPATCH_LEVEL |
правил соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |