Freigeben über


IRP_MN_QUERY_PNP_DEVICE_STATE

Funktions-, Filter- und Bustreiber können diese Anforderung verarbeiten.

Wert47

0x14

Hauptcode

IRP_MJ_PNP

Sendebedingungen

Der PnP-Manager sendet diese IRP, nachdem die Treiber für ein Gerät erfolgreich von der IRP_MN_START_DEVICE Anforderung zurückgegeben wurden, die beim ersten Starten eines Geräts gesendet wurde. Diese IRP wird bei einem Start nach einem Stopp für das erneute Ausgleichen der Ressourcen nicht gesendet. Der PnP-Manager sendet diese IRP auch, wenn ein Treiber für das Gerät IoInvalidateDeviceState aufruft.

Der PnP-Manager sendet diese IRP bei IRQL PASSIVE_LEVEL im Kontext eines beliebigen Threads.

Eingabeparameter

Keine

Ausgabeparameter

Wird im E/A-status-Block zurückgegeben.

E/A-Statusblock

Ein Treiber legt Irp-IoStatus.Status> auf STATUS_SUCCESS oder auf einen entsprechenden Fehler status wie STATUS_UNSUCCESSFUL fest.

Bei Erfolg legt ein Treiber Irp-IoStatus.Information> auf eine PNP_DEVICE_STATE Bitmaske fest.

Wenn ein Funktions- oder Filtertreiber diese IRP nicht verarbeitet, ruft er IoSkipCurrentIrpStackLocation auf, legt keine IoCompletion-Routine fest und übergibt den IRP an den nächsten Treiber. Ein solcher Treiber darf Irp-IoStatus> nicht ändern und darf die IRP nicht abschließen.

Wenn ein Bustreiber diese IRP nicht verarbeitet, bleibt Irp-IoStatus.Status> unverändert und schließt die IRP ab.

Vorgang

Diese IRP wird zuerst vom Treiber am oberen Rand des Gerätestapels und dann von jedem nächstniedrigten Treiber im Stapel verarbeitet.

Ein Treiber verarbeitet diese IRP, wenn er Informationen zum PnP-Zustand eines Geräts enthält. Ein Treiber kann die Flags in der PNP_DEVICE_STATE Bitmaske festlegen oder löschen. Wenn ein anderer Treiber eine PNP_DEVICE_STATE in Irp-IoStatus.Information> festgelegt hat, muss ein Treiber darauf achten, die Flags in dieser Bitmaske zu ändern, anstatt die gesamte Struktur zu überschreiben.

Die allgemeinen Regeln für die Behandlung Plug & Play untergeordneten IRPs finden Sie unter Plug & Play.

Senden dieses IRP

Ist für das System reserviert. Treiber dürfen diese IRP nicht senden.

Anforderungen

Header

Wdm.h (einschließlich Wdm.h, Ntddk.h oder Ntifs.h)

Weitere Informationen

IoInvalidateDeviceState

PNP_DEVICE_STATE