共用方式為


IRP_MN_QUERY_PNP_DEVICE_STATE

函式、篩選和匯流排驅動程式可以處理此要求。

Value47

0x14

主要程式碼

IRP_MJ_PNP

傳送時

PnP 管理員會在裝置的驅動程式從裝置第一次啟動時傳送 的IRP_MN_START_DEVICE 要求傳回成功之後,傳送此 IRP。 在停止資源重新平衡之後,不會在啟動時傳送此 IRP。 當裝置的驅動程式呼叫 IoInvalidateDeviceState時,PnP 管理員也會傳送此 IRP。

PnP 管理員會在任意執行緒的內容中,在 IRQL PASSIVE_LEVEL傳送此 IRP。

輸入參數

輸出參數

在 I/O 狀態欄塊中傳回。

I/O 狀態欄塊

驅動程式會將 Irp-IoStatus.Status > 設定為STATUS_SUCCESS或適當的錯誤狀態,例如STATUS_UNSUCCESSFUL。

成功時,驅動程式會將 Irp-IoStatus.Information > 設定為 PNP_DEVICE_STATE 位元遮罩。

如果函式或篩選驅動程式未處理此 IRP,它會呼叫 IoSkipCurrentIrpStackLocation、不會設定 IoCompletion 常式,並將 IRP 向下傳遞至下一個驅動程式。 這類驅動程式不得修改 Irp-IoStatus > ,且不得完成 IRP。

如果匯流排驅動程式未處理此 IRP,它會讓 Irp-IoStatus.Status > 保持原樣,並完成 IRP。

作業

此 IRP 會先由裝置堆疊頂端的驅動程式處理,然後再由堆疊中的每個下一個較低驅動程式來處理。

如果驅動程式具有裝置的 PnP 狀態相關資訊,則驅動程式會處理此 IRP。 驅動程式可以設定或清除PNP_DEVICE_STATE位元遮罩中的旗標。 如果另一個驅動程式已在 Irp-IoStatus.Information >中設定PNP_DEVICE_STATE,則驅動程式必須小心修改該位元遮罩中的旗標,而不是覆寫整個結構。

如需處理隨插即用次要 IRP的一般規則,請參閱隨插即用

傳送此 IRP

保留供系統使用。 驅動程式不得傳送此 IRP。

規格需求

標頭

Wdm.h (包括 Wdm.h、Ntddk.h 或 Ntifs.h)

另請參閱

IoInvalidateDeviceState

PNP_DEVICE_STATE