共用方式為


WdfFdoAddStaticChild 函式 (wdffdo.h)

[僅適用於 KMDF]

WdfFdoAddStaticChild 方法會將指定的裝置新增至函式驅動程式的子裝置清單,這些子裝置已由靜態列舉識別。

語法

NTSTATUS WdfFdoAddStaticChild(
  [in] WDFDEVICE Fdo,
  [in] WDFDEVICE Child
);

參數

[in] Fdo

表示父裝置之架構裝置物件的句柄。

[in] Child

表示子裝置之架構裝置物件的句柄。

返回值

如果作業成功,方法會傳回STATUS_SUCCESS。 其他傳回值包括:

回傳碼 說明
STATUS_INVALID_PARAMETER
Fdo 不是函式驅動程式裝置物件的句柄。
 

方法也可能 傳回其他NTSTATUS 值。

如果驅動程式提供無效的物件句柄,就會發生系統錯誤檢查。

備註

使用靜態總線列舉的驅動程式可以呼叫 WdfFdoAddStaticChild。 如需靜態子清單的詳細資訊,請參閱 列舉總線上的裝置

如果 WdfFdoAddStaticChild 傳回 NTSTATUS 值,NT_SUCCESS 評估為 FALSE,驅動程式必須呼叫 WdfObjectDelete,以刪除代表子裝置的架構裝置物件。 WdfFdoAddStaticChild 傳回STATUS_SUCCESS之後,驅動程式不得刪除架構裝置物件。

範例

下列程式代碼範例會建立架構裝置物件,此物件代表新的子裝置,並將子裝置新增至父裝置的子系列表。 如需完整的程式代碼範例,請參閱 KbFiltr 範例驅動程式。

NTSTATUS  status;
PWDFDEVICE_INIT  pDeviceInit = NULL;
WDFDEVICE  hChild = NULL;
WDF_OBJECT_ATTRIBUTES  pdoAttributes;

pDeviceInit = WdfPdoInitAllocate(Device);
if (pDeviceInit == NULL) {
    status = STATUS_INSUFFICIENT_RESOURCES;
    goto Cleanup;
}
...
status = WdfDeviceCreate(
                         &pDeviceInit,
                         &pdoAttributes,
                         &hChild
                         );
if (!NT_SUCCESS(status)) {
    WdfDeviceInitFree(pDeviceInit);
    pDeviceInit = NULL;
    goto Cleanup;
}
...
status = WdfFdoAddStaticChild(
                              Device,
                              hChild
                              );
if (!NT_SUCCESS(status)) {
    goto Cleanup;
}

需求

要求 價值
目標平臺 普遍
最低 KMDF 版本 1.0
標題 wdffdo.h (包括 Wdf.h)
程式庫 Wdf01000.sys (請參閱架構連結庫版本控制。)
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 AddPdoToStaticChildList(kmdf)DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf)

另請參閱

WdfChildListAddOrUpdateChildDescriptionAsPresent

WdfDeviceCreate

WdfPdoInitAllocate