[僅適用於 KMDF]
WdfFdoAddStaticChild 方法會將指定的裝置新增至函式驅動程式的子裝置清單,這些子裝置已由靜態列舉識別。
語法
NTSTATUS WdfFdoAddStaticChild(
[in] WDFDEVICE Fdo,
[in] WDFDEVICE Child
);
參數
[in] Fdo
表示父裝置之架構裝置物件的句柄。
[in] Child
表示子裝置之架構裝置物件的句柄。
返回值
如果作業成功,方法會傳回STATUS_SUCCESS。 其他傳回值包括:
回傳碼 | 說明 |
---|---|
|
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) |