Hallo Gemeinde,
für eine Produktunterstützung bei mir in der Firma benötige ich verschiedene Informationen bestimmter USB-Geräte und Endpunkte. Dazu habe ich mir die USB2-Spezifikation angesehen und wollte diese nun mit Hilfe von Powershell umsetzen. Also fing ich erst einmal "klein" an:
Get-WmiObject -Class CIM_USBDevice
Bis hier ist alles okay. Mit Get-Member fand ich nun heraus, dass für die zurückgegeben Objekte eine Methode Namens GetDescriptor() existiert.
(Get-WmiObject -Class CIM_USBDevice)|Get-Member TypeName: System.Management.ManagementObject#root\cimv2\Win32_USBHub Name MemberType Definition ---- ---------- ---------- PSComputerName AliasProperty PSComputerName = __SERVER GetDescriptor Method System.Management.ManagementBaseObject GetDescriptor(System.Byte RequestType, System.UInt16 RequestValue, System.UInt16 RequestIndex, System.UInt16 RequestLength) ...
Um die Methode nun aufzurufen benötigt diese, siehe Code oben , 4 Argumente. Laut MSDN sind es aber 5.
uint32 GetDescriptor( [in] uint8 RequestType, [in] uint16 RequestValue, [in] uint16 RequestIndex, [in, out] uint16 RequestLength, [out] uint8 Buffer[] );
Andererseits sagt mir Powershell, dass eine solche Methode garnicht existiert.
(Get-WmiObject -Class CIM_USBDevice).GetDescriptor($null, $null, $null, $null) Ausnahme beim Aufrufen von "GetDescriptor": "Diese Methode ist in keiner Klasse implementiert. "
Kann sich jemand einen Reim darauf machen? Meine zweite Frage ist - wie weise ich den Parametern richtige Werte zu? In der PDF zurUSB 2.0 Spezifikation ab Seite 248 sind die Parameter zwar erklärt, jedoch bleiben obige Fragen offen. Das Internet gibt in dieser Frage offensichtlich nichts her.
Gruß
Michael L.
Michael L.