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 来指示子级无法访问。 此示例摘自 烤箱 示例总线驱动程序并简化。

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)
图书馆 Wdf01000.sys(请参阅框架库版本控制。
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf)

另请参阅

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration