WdfPdoMarkMissing 函数 (wdfpdo.h)

[仅适用于 KMDF]

WdfPdoMarkMissing 方法通知框架设备不再可访问。

语法

NTSTATUS WdfPdoMarkMissing(
  [in] WDFDEVICE Device
);

参数

[in] Device

表示设备的物理设备对象的框架设备对象的句柄, (PDO) 。

返回值

如果操作成功,函数将返回STATUS_SUCCESS。 其他返回值包括:

返回代码 说明
STATUS_INVALID_PARAMETER
设备句柄不表示 PDO。
STATUS_NO_SUCH_DEVICE
找不到设备对象。
 

该方法还可能返回其他 NTSTATUS 值

如果驱动程序提供无效的对象句柄,则会发生系统 bug 检查。

注解

有关 WdfPdoMarkMissing 的详细信息,请参阅 静态枚举

示例

下面的代码示例搜索子设备列表,以查找与指定序列号匹配的设备。 当示例找到正确的子级时,它会调用 WdfPdoMarkMissing 来指示该子级不可访问。 此示例取自 Toaster 示例总线驱动程序并进行了简化。

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
标头 wdfpdo.h (包括 Wdf.h)
Library Wdf01000.sys (请参阅框架库 Versioning.)
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另请参阅

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration