битовые поля

Тема в разделе "WASM.BEGINNERS", создана пользователем drem1lin1, 23 авг 2010.

  1. drem1lin1

    drem1lin1 New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2010
    Сообщения:
    1
    Не могу разобраться со структурой, насколько я понимаю она является битовым полем, но WDK отказывается ее компилировать, пишет, что битовое поле некорректно определено (named bit field cannot have zero width). И вообще, я не встречал битовых полей с двумя размерами. Может кто то объяснит что это, или кинет ссылку почитать..
    Код (Text):
    1. struct _NDIS_MINIPORT_OFFLOAD_REG{
    2. IPv4XSumTxDisabled :0:1;
    3. IPv4XSumRxDisabled :1:1;
    4. ...
    5. }
     
  2. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Это не C.
     
  3. dfrsa

    dfrsa New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2010
    Сообщения:
    88
    Это у тебя инфа из сдампленных из .pdb файла структур, там не восстанавливаются обьединения, а также своя интерпретация битовых полей. Замени на
    struct _NDIS_MINIPORT_OFFLOAD_REG {

    // static data ------------------------------------

    // non-static data --------------------------------
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long IPv4XSumTxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long IPv4XSumRxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long TCPv4XSumTxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long TCPv4XSumRxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long UDPv4XSumTxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long UDPv4XSumRxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long TCPv6XSumTxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long TCPv6XSumRxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long UDPv6XSumTxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long UDPv6XSumRxDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long LsoV1IPv4Disabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long LsoV2IPv4Disabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long LsoV2IPv6Disabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long IPsecAHDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long IPsecESPDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long TCPv4ConnectionOffloadDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long TCPv6ConnectionOffloadDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long ReadRegistry:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long IPsecV2AHDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long IPsecV2ESPDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long IPsecV2IPv4AHDisabled:1;
    /*<bitfield this+0x0>*/ /*|0x4|*/ unsigned long IPsecV2IPv4ESPDisabled:1;
    /*<thisrel this+0x0>*/ /*|0x4|*/ unsigned long Value;
    };