次の方法で共有


WdfDeviceAddRemovalRelationsPhysicalDevice 関数 (wdfdevice.h)

[KMDF にのみ適用]

WdfDeviceAddRemovalRelationsPhysicalDevice メソッドは、別の指定したデバイスが削除されたときに、指定したデバイスを削除する必要があることを示します。

構文

NTSTATUS WdfDeviceAddRemovalRelationsPhysicalDevice(
  [in] WDFDEVICE      Device,
  [in] PDEVICE_OBJECT PhysicalDevice
);

パラメーター

[in] Device

フレームワーク デバイス オブジェクトへのハンドル。

[in] PhysicalDevice

物理デバイス オブジェクト (PDO) を表す呼び出し元が指定した DEVICE_OBJECT 構造体へのポインター。

戻り値

操作が成功した場合、WdfDeviceAddRemovalRelationsPhysicalDevice はSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。

リターン コード 形容
STATUS_INVALID_PARAMETER
PhysicalDevice NULL
STATUS_INSUFFICIENT_RESOURCES
メモリ割り当てに失敗しました。
 

このメソッドは、NTSTATUS 値を返す場合があります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

備考

PhysicalDevice パラメーターは、デバイス のドライバーを削除するときにドライバーを削除する必要があるデバイスの PDO を指します。 通常、両方のデバイスは呼び出し元のドライバーによって制御されます。 プラグ アンド プレイ マネージャーが親デバイスを削除すると、デバイスの子も削除されるため、デバイス で指定されたデバイス オブジェクトの子デバイスを報告しないでください。

ドライバーは、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)

関連項目

WdfDeviceClearRemovalRelationsDevices

WdfDeviceRemoveRemovalRelationsPhysicalDevice