WdfDeviceAddRemovalRelationsPhysicalDevice 関数 (wdfdevice.h)
[KMDF にのみ適用]
WdfDeviceAddRemovalRelationsPhysicalDevice メソッドは、別の指定されたデバイスが削除されるときに、指定したデバイスを削除する必要があることを示します。
構文
NTSTATUS WdfDeviceAddRemovalRelationsPhysicalDevice(
[in] WDFDEVICE Device,
[in] PDEVICE_OBJECT PhysicalDevice
);
パラメーター
[in] Device
フレームワーク デバイス オブジェクトへのハンドル。
[in] PhysicalDevice
物理デバイス オブジェクト (PDO) を表す呼び出し元から提供された DEVICE_OBJECT 構造体へのポインター。
戻り値
操作が成功した場合、 WdfDeviceAddRemovalRelationsPhysicalDevice はSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
PhysicalDevice が NULL です。 |
|
メモリ割り当てに失敗しました。 |
メソッドは、他の 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) |