IOCTL_PMI_GET_CAPABILITIES IOCTL (pmi.h)
Die IOCTL_PMI_GET_CAPABILITIES Anforderung ruft die Funktionen und Ressourceninformationen zu einem Leistungsmessgerät ab.
Hauptcode
Eingabepuffer
Der AssociatedIrp.SystemBuffer-Member des E/A-Anforderungspakets (IRP) verweist auf einen vom Initiator zugewiesenen Puffer, der sowohl als Eingabepuffer als auch als Ausgabepuffer für die Anforderung verwendet wird. Bei der Eingabe enthält dieser Puffer eine PMI_CAPABILITIES Struktur, in der die Member Version und CapabilityType auf gültige Werte festgelegt sind. Das CapabilitiesType-Element enthält einen PMI_CAPABILITIES_TYPE Enumerationswert, der den Typ der PMI-Funktionsinformationen angibt, die aus dem Leistungsmessgerät abgerufen werden sollen. Dieser Wert bestimmt auch die Größe des Ausgabepuffers, der zum Enthalten dieser Informationen erforderlich ist.
Eingabepufferlänge
Das Parameters.DeviceIoControl.InputBufferLength-Member des aktuellen IRP-Stapelspeicherorts (IO_STACK_LOCATION) wird auf die Größe in Bytes des Puffers festgelegt, auf den vom AssociatedIrp.SystemBuffer-Member verwiesen wird. Diese Größe muss größer oder gleich sizeof(PMI_CAPABILITIES) sein, andernfalls schlägt die Anforderung mit einem Fehler status STATUS_INVALID_PARAMETER fehl.
Ausgabepuffer
Wenn die Anforderung erfolgreich abgeschlossen wurde, enthält der Puffer, auf den der AssociatedIrp.SystemBuffer-Member verweist, die angeforderten PMI-Funktionsinformationen. Am Anfang dieses Puffers befindet sich eine PMI_CAPABILITIES-Struktur , die den Typ und die Größe der Informationen im Puffer angibt.
Länge des Ausgabepuffers
Das Parameters.DeviceIoControl.OutputBufferLength-Element des aktuellen E/A-Stapelspeicherorts des IRP wird auf die Größe in Bytes des Puffers festgelegt, auf den vom AssociatedIrp.SystemBuffer-Member verwiesen wird. Damit die Anforderung erfolgreich ist, muss diese Größe groß genug sein, um die PMI-Funktionsinformationen zu enthalten, die durch den PMI_CAPABILITIES_TYPE Eingabeparameterwert angegeben werden. Andernfalls schlägt die Anforderung mit fehler status STATUS_BUFFER_TOO_SMALL fehl.
Statusblock
Das Information-Element ist auf die Größe einer PMI_CAPABILITIES Struktur und deren Daten mit variabler Länge in Bytes festgelegt.
Der Statusmember ist auf einen der folgenden Werte festgelegt:
STATUS_BUFFER_TOO_SMALL
Das Parameters.DeviceIoControl.OutputBufferLength-Element des IRP ist kleiner als die Größe einer PMI_CAPABILITIES-Struktur in Bytes und deren Daten mit variabler Länge.
STATUS_INVALID_PARAMETER
Der vom Initiator zugewiesene Eingabepuffer enthält einen ungültigen PMI_CAPABILITIES_TYPE Wert.
STATUS_SUCCESS
Der WDM-Treiber, der die PMI-Schnittstelle unterstützt, hat die IOCTL-Anforderung erfolgreich abgeschlossen.
Hinweise
Die IOCTL_PMI_GET_CAPABILITIES Anforderung fragt die PMI-Funktionen oder Ressourceninformationen des Leistungsmessgeräts ab. Der Eingabe-PMI_CAPABILITIES-Enumerationswert gibt den Typ der zurückzugebenden Funktionsinformationen an. Der Datentyp und der Inhalt des Ausgabepuffers variieren je nach den angeforderten Daten.
In der folgenden Tabelle wird der Typ der Daten beschrieben, die für den angegebenen PMI_CAPABILITIES_TYPE Enumerationswert zurückgegeben werden.
PMI_CAPABILITIES_TYPE Wert | BESCHREIBUNG |
---|---|
PmiMeteredHardware | Eine PMI_METERED_HARDWARE_INFORMATION-Struktur , die die Hardwaregeräte angibt, die das Leistungsmessgerät überwacht. |
PmiReportedCapabilities |
Eine PMI_REPORTED_CAPABILITIES-Struktur , die die Typen von PMI-Funktionen angibt, die vom Leistungsmessgerät unterstützt werden.
Hinweis Die PMI_REPORTED_CAPABILITIES Struktur ist variabel. Der Treiber muss diese IOCTL-Anforderung nicht ausführen, wenn der Ausgabepuffer (auf den der MdlAddress-Member des IRP verweist) zu klein ist.
|
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows 7, Windows Server 2008 R2 und höheren Versionen der Windows-Betriebssysteme. |
Kopfzeile | pmi.h (include Pmi.h) |