次の方法で共有


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
PhysicalDeviceNULL です
STATUS_INSUFFICIENT_RESOURCES
メモリ割り当てに失敗しました。
 

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

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

注釈

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

ドライバーは 、WdfDeviceAddRemovalRelationsPhysicalDevice を複数回呼び出して、デバイスが削除されたときに削除する必要があるデバイスの一覧に複数の デバイスを 追加できます。 指定したデバイスが削除される順序は定義されていません。

次のコード例では、 pPdo が識別するデバイスを、デバイスが指定するデバイスが削除されるときに削除する必要がある デバイス の一覧に追加します。

status = WdfDeviceAddRemovalRelationsPhysicalDevice(
                                                    device,
                                                    pPdo
                                                    );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfdevice.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)

こちらもご覧ください

WdfDeviceClearRemovalRelationsDevices

WdfDeviceRemoveRemovalRelationsPhysicalDevice