C 访问结构变量双指针

C 访问结构变量双指针,c,pointers,structure,C,Pointers,Structure,一些代码: typedef struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS { ULONG Size; WdfUsbTargetDeviceSelectConfigType Type; union { struct { PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor; PUSB_INTERFACE_DESCRIPTOR* InterfaceDescript

一些代码:

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_设备_选择_配置_参数,*PWDF_USB_设备_选择_配置_参数; WDF_USB_设备_选择_配置_参数

typedef struct _USB_INTERFACE_DESCRIPTOR {
UCHAR bLength ;
UCHAR bInterfaceClass ;
UCHAR bInterfaceSubClass ;
} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR ;
能够通过->params.Types.Descriptor.NumInterfaceDescriptors访问NumInterfaceDescriptors

我想通过WDF\U USB\U设备选择配置参数访问Binterface类。 请注意,此结构由库填充,我只需访问它

您需要的似乎是:

ULONG iface;

for (iface = 0; iface < params.Types.Descriptor.NumInterfaceDescriptors; iface++)
{
    do_something_with(params.Types.Descriptor.InterfaceDescriptors[iface]);
}
ULONG-iface;
对于(iface=0;iface
…但是你真的应该花更多的时间把你的问题弄清楚,这样人们就不必猜你的意思了。

看来你想要的是:

ULONG iface;

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

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

googleforwdf\u USB\u DEVICE\u SELECT\u CONFIG\u PARAMS。第一个点击将引导您进入相关的MSDN页面,该页面告诉您Types.Descriptor.InterfacedDescriptors

包含驱动程序提供的指向USB\u接口\u描述符结构数组的指针

而Types.Descriptor.NuminterFaceDescriptor确实是

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


因此,您的“指针指向指针”实际上是一个USB接口描述符指针数组。

Google for WDF\u USB\u设备\u选择\u配置参数。第一个点击将引导您进入相关的MSDN页面,该页面告诉您Types.Descriptor.InterfacedDescriptors

包含驱动程序提供的指向USB\u接口\u描述符结构数组的指针

而Types.Descriptor.NuminterFaceDescriptor确实是

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


因此,您的“指向指针的指针”实际上是一组USB接口描述符指针。

我已将其回滚,以便至少代码清晰易读。请从此点向前进行任何进一步的编辑,当您完成编辑后,请检查您所做的操作是否产生清晰的输出!记住,编辑预览中显示的内容不一定是最后一页上显示的内容。@Neil:干得好。。。我试过几次,包括将代码复制到外部编辑器并在那里整理,但我放弃了。我发现当工会成员没有缩进时,仍然很难破译。当然,这不是你的错,一开始就让人垂涎三尺。@unwind-是的,我自己也不明白:-)关于(以及我对它的评论),请在提交之前试着校对你的问题,并且在你提出问题后,请试着不要对问题做出重大改变。我还建议你在跑步之前先学会走路,也就是说,在你进入USB接口编程之前,先学会如何处理结构、指针和typedef。我已经将这一点回滚了,这样至少代码是清晰的。请从此点向前进行任何进一步的编辑,当您完成编辑后,请检查您所做的操作是否产生清晰的输出!记住,编辑预览中显示的内容不一定是最后一页上显示的内容。@Neil:干得好。。。我试过几次,包括将代码复制到外部编辑器并在那里整理,但我放弃了。我发现当工会成员没有缩进时,仍然很难破译。当然,这不是你的错,一开始就让人垂涎三尺。@unwind-是的,我自己也不明白:-)关于(以及我对它的评论),请在提交之前试着校对你的问题,并且在你提出问题后,请试着不要对问题做出重大改变。我还建议您在跑步之前先学会走路,即在进入USB接口编程之前学习如何处理结构、指针和类型定义。InterfacedDescriptors是指向结构的双指针,我可以看到这一点。结构定义强烈暗示它是指向结构的
NuminterFaceDescriptor
指针数组的指针。InterfacedDescriptors是指向结构的双指针我可以看到这一点。结构定义强烈暗示它是指向结构的
numinterFaceDescriptor
指针数组的指针。