访问结构变量双指针

一些代码:

typedef struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS { ULONG Size; WdfUsbTargetDeviceSelectConfigType Type; union { struct { PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor; PUSB_INTERFACE_DESCRIPTOR* InterfaceDescriptors; ULONG NumInterfaceDescriptors; } Descriptor; struct { PURB Urb; } Urb; } Types; 

} WDF_USB_DEVICE_SELECT_CONFIG_PARAMS,* PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS; WDF_USB_DEVICE_SELECT_CONFIG_PARAMS参数;

 typedef struct _USB_INTERFACE_DESCRIPTOR { UCHAR bLength ; UCHAR bInterfaceClass ; UCHAR bInterfaceSubClass ; } USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR ; 

能够通过 – > params.Types.Descriptor.NumInterfaceDescriptors访问NumInterfaceDescriptors

我想通过WDF_USB_DEVICE_SELECT_CONFIG_PARAMS访问bInterfaceClass。 请注意,这个结构由我必须访问它的库填充

看来你想要的是:

 ULONG iface; for (iface = 0; iface < params.Types.Descriptor.NumInterfaceDescriptors; iface++) { do_something_with(params.Types.Descriptor.InterfaceDescriptors[iface]); } 

..但你真的应该花更多的时间让你的问题清楚,这样人们就不必猜出你的意思了。

Google for WDF_USB_DEVICE_SELECT_CONFIG_PARAMS。 第一个命中引导您到相关的MSDN页面,它告诉您Types.Descriptor.InterfaceDescriptors

包含一个驱动程序提供的指向USB_INTERFACE_DESCRIPTOR结构数组的指针

确实是Types.Descriptor.NumInterfaceDescriptors

包含Types.Descriptor.InterfaceDescriptors指向的接口数组的元素数

你的“指针指针”实际上是一个USB_INTERFACE_DESCRIPTOR指针数组。