Функция WdfDeviceAddRemovalRelationsPhysicalDevice (wdfdevice.h)
[Относится только к KMDF]
Метод WdfDeviceAddRemovalRelationsPhysicalDevice указывает, что указанное устройство должно быть удалено при удалении другого указанного устройства.
Синтаксис
NTSTATUS WdfDeviceAddRemovalRelationsPhysicalDevice(
[in] WDFDEVICE Device,
[in] PDEVICE_OBJECT PhysicalDevice
);
Параметры
[in] Device
Дескриптор объекта устройства платформы.
[in] PhysicalDevice
Указатель на предоставленную вызывающей DEVICE_OBJECT структуру, представляющую объект физического устройства (PDO).
Возвращаемое значение
Если операция выполнена успешно, WdfDeviceAddRemovalRelationsPhysicalDevice возвращает STATUS_SUCCESS. К дополнительным возвращаемым значениям относятся:
Код возврата | Описание |
---|---|
|
PhysicalDevice имеет значение NULL. |
|
Сбой выделения памяти. |
Метод может возвращать другие значения NTSTATUS.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Параметр PhysicalDevice указывает на PDO устройства, драйверы которого должны быть удалены при удалении драйверов для устройства . Как правило, оба устройства управляются вызывающим драйвером. Не сообщайте о дочерних устройствах объекта устройства, указанного в разделе Устройство, так как когда диспетчер Plug and Play удаляет родительское устройство, он также удаляет дочерние элементы устройства.
Драйвер может вызвать WdfDeviceAddRemovalRelationsPhysicalDevice несколько раз, чтобы добавить несколько устройств в список устройств, которые необходимо удалить при удалении устройства . Порядок удаления указанных устройств не определен.
Примеры
В следующем примере кода устройство, идентифицирующее pPdo , добавляется в список устройств, которые необходимо удалить при удалении устройства, указанного устройством .
status = WdfDeviceAddRemovalRelationsPhysicalDevice(
device,
pPdo
);
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Верхняя часть | wdfdevice.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (см. раздел Управление версиями библиотеки Платформы). |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |