WdfFdoAddStaticChild 函式 (wdffdo.h)
[僅適用於 KMDF]
WdfFdoAddStaticChild 方法會將指定的裝置新增至由靜態列舉識別的函式驅動程式子裝置清單。
語法
NTSTATUS WdfFdoAddStaticChild(
[in] WDFDEVICE Fdo,
[in] WDFDEVICE Child
);
參數
[in] Fdo
代表父裝置之架構裝置物件的句柄。
[in] Child
代表子裝置之架構裝置物件的句柄。
傳回值
如果作業成功,方法會傳回STATUS_SUCCESS。 其他傳回值包括:
傳回碼 | Description |
---|---|
|
Fdo 不是函式驅動程式裝置物件的句柄。 |
方法也可能傳回其他 NTSTATUS值。
如果驅動程式提供無效的物件句柄,就會發生系統錯誤檢查。
備註
使用靜態總線列舉的驅動程式可以呼叫 WdfFdoAddStaticChild。 如需靜態子清單的詳細資訊,請參閱 列舉總線上的裝置。
如果 WdfFdoAddStaticChild 傳回 NT_SUCCESS 評估為 FALSE 的 NTSTATUS 值,驅動程式必須呼叫 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;
}
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
標頭 | wdffdo.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (請參閱 Framework Library Versioning.) |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | AddPdoToStaticChildList (kmdf) 、 DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf ) 、 KmdfIrqlExplicit (kmdf) |