WdfPdoMarkMissing 関数 (wdfpdo.h)
[KMDF にのみ適用]
WdfPdoMarkMissing メソッドは、デバイスにアクセスできなくなったことをフレームワークに通知します。
構文
NTSTATUS WdfPdoMarkMissing(
[in] WDFDEVICE Device
);
パラメーター
[in] Device
デバイスの物理デバイス オブジェクト (PDO) を表すフレームワーク デバイス オブジェクトへのハンドル。
戻り値
操作が成功した場合、関数は STATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
デバイス ハンドルは PDO を表しません。 |
|
デバイス オブジェクトが見つかりませんでした。 |
メソッドは、他の NTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、システム バグ チェックが発生します。
注釈
WdfPdoMarkMissing の詳細については、「静的列挙」を参照してください。
例
次のコード例では、子デバイスの一覧を検索して、指定したシリアル番号と一致するものを見つけます。 この例では、正しい子が見つかると、 WdfPdoMarkMissing を呼び出して、子にアクセスできないことを示します。 この例は 、トースター サンプル バス ドライバーから取得され、簡略化されています。
WDFDEVICE hChild = NULL;
NTSTATUS status = STATUS_INVALID_PARAMETER;
BOOLEAN found = FALSE;
PPDO_DEVICE_DATA pdoData;
WdfFdoLockStaticChildListForIteration(Device);
while ((hChild = WdfFdoRetrieveNextStaticChild(
Device,
hChild,
WdfRetrieveAddedChildren
)) != NULL) {
pdoData = PdoGetData(hChild); // Device object context space
if (SerialNo == pdoData->SerialNo) {
status = WdfPdoMarkMissing(hChild);
if(!NT_SUCCESS(status)) {
KdPrint(("WdfPdoMarkMissing failed 0x%x\n", status));
break;
}
found = TRUE;
break;
}
}
WdfFdoUnlockStaticChildListFromIteration(Device);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
Header | wdfpdo.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf) |