From: Peter on
I am active MSDN subscriber and I met serious problem in your product.
Our commercial software product is dependent on your support,
and I am amazed that after several weeks there is no answer to my question
originally posted 22-Aug and posted again 20-Sep.
I am writting my question again,
like your customer who hve purchased
MSDN Professional and hope that you will give me solution to this technical
problem.

In NDIS6.1 filter driver,
net buffer list pool is created with parameters:

netBuffListParamsPreAlloc.Header.Revision =
NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
netBuffListParamsPreAlloc.Header.Size =
NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
netBuffListParamsPreAlloc.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
netBuffListParamsPreAlloc.ProtocolId = NDIS_PROTOCOL_ID_DEFAULT;
netBuffListParamsPreAlloc.PoolTag = '1lbN';
netBuffListParamsPreAlloc.fAllocateNetBuffer = TRUE;
netBuffListParamsPreAlloc.ContextSize = 0;
netBuffListParamsPreAlloc.DataSize = ip_datagramSize + 14;

and in FilterSendNetBufferLists() is implemented rewrapping of NET_BUFFER_LIST
with help of: NdisAllocateNetBufferList(netBufferListPool, 0, 0);
Build is done for 32-bit, I checked structure member alignment, it is: /Zp8 .
Problem is that array item:
NetBufferListInfo[IPsecOffloadV2HeaderNetBufferListInfo] in created
NET_BUFFER_LIST overlappes Next member in first NET_BUFFER, so when I do:
NET_BUFFER_LIST_INFO(newBuffList,IPsecOffloadV2HeaderNetBufferListInfo) =
NET_BUFFER_LIST_INFO(oldBuffList,IPsecOffloadV2HeaderNetBufferListInfo);
then value of Next member of first NET_BUFFER is set to invalid value
and sometimes I meet BSOD.
So NdisAllocateNetBufferList() allocates first NET_BUFFER on bad place,
how to resolve this bug ?

Peter

From: David Craig on
Have you registered a anti-spam alias on the MSDN website? If they don't
answer here, use one of your support incidents to get your answer as that
may be the only option. You could ask MSDN support if they show your
anti-spam alias as being valid and being triggered upon when you post. Are
you posting directly to the Microsoft news server?

"Peter" <Peter(a)discussions.microsoft.com> wrote in message
news:2FDBBAE7-5390-492D-8444-A5F3F2A5C57E(a)microsoft.com...
>I am active MSDN subscriber and I met serious problem in your product.
> Our commercial software product is dependent on your support,
> and I am amazed that after several weeks there is no answer to my question
> originally posted 22-Aug and posted again 20-Sep.
> I am writting my question again,
> like your customer who hve purchased
> MSDN Professional and hope that you will give me solution to this
> technical
> problem.
>
> In NDIS6.1 filter driver,
> net buffer list pool is created with parameters:
>
> netBuffListParamsPreAlloc.Header.Revision =
> NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
> netBuffListParamsPreAlloc.Header.Size =
> NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
> netBuffListParamsPreAlloc.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
> netBuffListParamsPreAlloc.ProtocolId = NDIS_PROTOCOL_ID_DEFAULT;
> netBuffListParamsPreAlloc.PoolTag = '1lbN';
> netBuffListParamsPreAlloc.fAllocateNetBuffer = TRUE;
> netBuffListParamsPreAlloc.ContextSize = 0;
> netBuffListParamsPreAlloc.DataSize = ip_datagramSize + 14;
>
> and in FilterSendNetBufferLists() is implemented rewrapping of
> NET_BUFFER_LIST
> with help of: NdisAllocateNetBufferList(netBufferListPool, 0, 0);
> Build is done for 32-bit, I checked structure member alignment, it is:
> /Zp8 .
> Problem is that array item:
> NetBufferListInfo[IPsecOffloadV2HeaderNetBufferListInfo] in created
> NET_BUFFER_LIST overlappes Next member in first NET_BUFFER, so when I do:
> NET_BUFFER_LIST_INFO(newBuffList,IPsecOffloadV2HeaderNetBufferListInfo) =
> NET_BUFFER_LIST_INFO(oldBuffList,IPsecOffloadV2HeaderNetBufferListInfo);
> then value of Next member of first NET_BUFFER is set to invalid value
> and sometimes I meet BSOD.
> So NdisAllocateNetBufferList() allocates first NET_BUFFER on bad place,
> how to resolve this bug ?
>
> Peter
>


From: Peter on
Thanks David for willing to help with that.

I put many questions to this forum in the past and had answers on them,
so I dont understand that anti-spam alias is needed to have answer on this
question.
For sending my questions I always used web browser to connect:
http://www.microsoft.com/communities/newsgroups/en-us/?dg=microsoft.public.development.device.drivers


To know answer on this technical question is very important for us.
What is anti-spam alias good for ? Where can I register it ?
Does it mean that support answer directly to my email ?

(I understand your words about supoprt incident, so if answer wil not come
here< I will use it)

Peter

"David Craig" wrote:

> Have you registered a anti-spam alias on the MSDN website? If they don't
> answer here, use one of your support incidents to get your answer as that
> may be the only option. You could ask MSDN support if they show your
> anti-spam alias as being valid and being triggered upon when you post. Are
> you posting directly to the Microsoft news server?
>
> "Peter" <Peter(a)discussions.microsoft.com> wrote in message
> news:2FDBBAE7-5390-492D-8444-A5F3F2A5C57E(a)microsoft.com...
> >I am active MSDN subscriber and I met serious problem in your product.
> > Our commercial software product is dependent on your support,
> > and I am amazed that after several weeks there is no answer to my question
> > originally posted 22-Aug and posted again 20-Sep.
> > I am writting my question again,
> > like your customer who hve purchased
> > MSDN Professional and hope that you will give me solution to this
> > technical
> > problem.
> >
> > In NDIS6.1 filter driver,
> > net buffer list pool is created with parameters:
> >
> > netBuffListParamsPreAlloc.Header.Revision =
> > NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
> > netBuffListParamsPreAlloc.Header.Size =
> > NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
> > netBuffListParamsPreAlloc.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
> > netBuffListParamsPreAlloc.ProtocolId = NDIS_PROTOCOL_ID_DEFAULT;
> > netBuffListParamsPreAlloc.PoolTag = '1lbN';
> > netBuffListParamsPreAlloc.fAllocateNetBuffer = TRUE;
> > netBuffListParamsPreAlloc.ContextSize = 0;
> > netBuffListParamsPreAlloc.DataSize = ip_datagramSize + 14;
> >
> > and in FilterSendNetBufferLists() is implemented rewrapping of
> > NET_BUFFER_LIST
> > with help of: NdisAllocateNetBufferList(netBufferListPool, 0, 0);
> > Build is done for 32-bit, I checked structure member alignment, it is:
> > /Zp8 .
> > Problem is that array item:
> > NetBufferListInfo[IPsecOffloadV2HeaderNetBufferListInfo] in created
> > NET_BUFFER_LIST overlappes Next member in first NET_BUFFER, so when I do:
> > NET_BUFFER_LIST_INFO(newBuffList,IPsecOffloadV2HeaderNetBufferListInfo) =
> > NET_BUFFER_LIST_INFO(oldBuffList,IPsecOffloadV2HeaderNetBufferListInfo);
> > then value of Next member of first NET_BUFFER is set to invalid value
> > and sometimes I meet BSOD.
> > So NdisAllocateNetBufferList() allocates first NET_BUFFER on bad place,
> > how to resolve this bug ?
> >
> > Peter
> >
>
>
>
From: David Craig on
I gave you the answer. Log into your MSDN account and look for 'Managed
Newsgroups' or something close to that. Read the web pages about them and
the anti-spam alias which is supposed to trigger a Microsoft support rep to
find you an answer in two days. All other answers are from folks who just
want to answer or want the benefits of being a MVP. Some in this newsgroup
are Microsoft developers who answer because they want to do so, but there is
no guarantee that they will answer your question.

"Peter" <Peter(a)discussions.microsoft.com> wrote in message
news:42723BC1-FBA0-4469-B9D4-6371B9A09E2B(a)microsoft.com...
> Thanks David for willing to help with that.
>
> I put many questions to this forum in the past and had answers on them,
> so I dont understand that anti-spam alias is needed to have answer on this
> question.
> For sending my questions I always used web browser to connect:
> http://www.microsoft.com/communities/newsgroups/en-us/?dg=microsoft.public.development.device.drivers
>
>
> To know answer on this technical question is very important for us.
> What is anti-spam alias good for ? Where can I register it ?
> Does it mean that support answer directly to my email ?
>
> (I understand your words about supoprt incident, so if answer wil not come
> here< I will use it)
>
> Peter
>
> "David Craig" wrote:
>
>> Have you registered a anti-spam alias on the MSDN website? If they don't
>> answer here, use one of your support incidents to get your answer as that
>> may be the only option. You could ask MSDN support if they show your
>> anti-spam alias as being valid and being triggered upon when you post.
>> Are
>> you posting directly to the Microsoft news server?
>>
>> "Peter" <Peter(a)discussions.microsoft.com> wrote in message
>> news:2FDBBAE7-5390-492D-8444-A5F3F2A5C57E(a)microsoft.com...
>> >I am active MSDN subscriber and I met serious problem in your product.
>> > Our commercial software product is dependent on your support,
>> > and I am amazed that after several weeks there is no answer to my
>> > question
>> > originally posted 22-Aug and posted again 20-Sep.
>> > I am writting my question again,
>> > like your customer who hve purchased
>> > MSDN Professional and hope that you will give me solution to this
>> > technical
>> > problem.
>> >
>> > In NDIS6.1 filter driver,
>> > net buffer list pool is created with parameters:
>> >
>> > netBuffListParamsPreAlloc.Header.Revision =
>> > NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
>> > netBuffListParamsPreAlloc.Header.Size =
>> > NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
>> > netBuffListParamsPreAlloc.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
>> > netBuffListParamsPreAlloc.ProtocolId = NDIS_PROTOCOL_ID_DEFAULT;
>> > netBuffListParamsPreAlloc.PoolTag = '1lbN';
>> > netBuffListParamsPreAlloc.fAllocateNetBuffer = TRUE;
>> > netBuffListParamsPreAlloc.ContextSize = 0;
>> > netBuffListParamsPreAlloc.DataSize = ip_datagramSize + 14;
>> >
>> > and in FilterSendNetBufferLists() is implemented rewrapping of
>> > NET_BUFFER_LIST
>> > with help of: NdisAllocateNetBufferList(netBufferListPool, 0, 0);
>> > Build is done for 32-bit, I checked structure member alignment, it is:
>> > /Zp8 .
>> > Problem is that array item:
>> > NetBufferListInfo[IPsecOffloadV2HeaderNetBufferListInfo] in created
>> > NET_BUFFER_LIST overlappes Next member in first NET_BUFFER, so when I
>> > do:
>> > NET_BUFFER_LIST_INFO(newBuffList,IPsecOffloadV2HeaderNetBufferListInfo)
>> > =
>> > NET_BUFFER_LIST_INFO(oldBuffList,IPsecOffloadV2HeaderNetBufferListInfo);
>> > then value of Next member of first NET_BUFFER is set to invalid value
>> > and sometimes I meet BSOD.
>> > So NdisAllocateNetBufferList() allocates first NET_BUFFER on bad place,
>> > how to resolve this bug ?
>> >
>> > Peter
>> >
>>
>>
>>


From: Pavel A. on
"Peter" <Peter(a)discussions.microsoft.com> wrote in message
news:2FDBBAE7-5390-492D-8444-A5F3F2A5C57E(a)microsoft.com...
> I am active MSDN subscriber and I met serious problem in your product.
> Our commercial software product is dependent on your support,
> and I am amazed that after several weeks there is no answer to my question
> originally posted 22-Aug and posted again 20-Sep.
> I am writting my question again,
> like your customer who hve purchased
> MSDN Professional and hope that you will give me solution to this
> technical
> problem.
>
> In NDIS6.1 filter driver,
> net buffer list pool is created with parameters:
>
> netBuffListParamsPreAlloc.Header.Revision =
> NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
> netBuffListParamsPreAlloc.Header.Size =
> NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
> netBuffListParamsPreAlloc.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
> netBuffListParamsPreAlloc.ProtocolId = NDIS_PROTOCOL_ID_DEFAULT;
> netBuffListParamsPreAlloc.PoolTag = '1lbN';
> netBuffListParamsPreAlloc.fAllocateNetBuffer = TRUE;
> netBuffListParamsPreAlloc.ContextSize = 0;
> netBuffListParamsPreAlloc.DataSize = ip_datagramSize + 14;
>
> and in FilterSendNetBufferLists() is implemented rewrapping of
> NET_BUFFER_LIST
> with help of: NdisAllocateNetBufferList(netBufferListPool, 0, 0);
> Build is done for 32-bit, I checked structure member alignment, it is:
> /Zp8 .
> Problem is that array item:
> NetBufferListInfo[IPsecOffloadV2HeaderNetBufferListInfo] in created
> NET_BUFFER_LIST overlappes Next member in first NET_BUFFER, so when I do:
> NET_BUFFER_LIST_INFO(newBuffList,IPsecOffloadV2HeaderNetBufferListInfo) =
> NET_BUFFER_LIST_INFO(oldBuffList,IPsecOffloadV2HeaderNetBufferListInfo);
> then value of Next member of first NET_BUFFER is set to invalid value
> and sometimes I meet BSOD.
> So NdisAllocateNetBufferList() allocates first NET_BUFFER on bad place,
> how to resolve this bug ?
>
> Peter

Hmm, IPsecOffloadV2HeaderNetBufferListInfo is the last
enum member for NDIS 6.1 (see ndis.h in WDK 7600, line 4435)

So if something gets wrong with conditional #defines,
the corresponding array element can overlap.
Need to recheck all build settings, macros etc that
affect definition of NDIS_SUPPORT_NDIS61 or whatever.

--pa