Tank You mr Tim Roberts.
Last four lines couse a blue screen. Sorry. That plus 1 is for another purpose. Do not think about it.Problem is in last four lines. That 4 lines couse an error. My driver is working normally without that lines. . Ping is comming normal. But other more complex protocols not working after I install my driver. For example i can not look the shared directories in another computer, So i desided it is becouse i am not copying the NET+BUFFER+LIST+CONTEXT,
But after i write
if (pNBL->Context) {
NDIS_STATUS resContext = NdisAllocateNetBufferListContext(cloneOfpNBL,
NET_BUFFER_LIST_CONTEXT_DATA_SIZE(pNBL),
0, FILTER_TAG/‘2gaT’/);
if (resContext != NDIS_STATUS_SUCCESS) {
FILTER_RELEASE_LOCK(&pFilter->Lock, DispatchLevel);
if (resContext == NDIS_STATUS_RESOURCES) { KdPrint((“NdisAllocateNetBufferListContext error NDIS_STATUS_RESOURCES\n”)); }
else { KdPrint((“NdisAllocateNetBufferListContext error\n”)); }
break;
}
lines, the driver begun to couse blue screen,
Thank You mister
And second question. Do I need to allocate the pool for NdisAllocateNetBufferListContext, like a allocating memory for net buffers and net buffer list. If no, from where is being allocation for context
YOU should not be dinking with the members of the NET_BUFFER_LIST_CONTEXT structure. NdisAllocateNetBufferListContext will set up all those members as needed. You need to copy the data to whatever the CURRENT offset is, not the offset from a buffer list that has had a separate lifetime. I would just delete those three lines.
Mr. Tim_Roberts. Can you tell me. When I look at the NdisAllocateCloneNetBufferList examples, they don’t allocate context for the cloned NET_BUFFER_LIST. How it works without allocating the context. The NdisAllocateCloneNetBufferList documentation says that this function does not allocate a context. We have to make ourselves
First, I should comment that I am not a network guy. Like 90% of the questions I answer, I get my info from my friend Google.
But I am not sure what you think you are accomplishing here. Context is private to the entity that allocated it. No one else understands what’s in there. If you allocate a net buffer list, then you can allocate context space for YOU, but I don’t believe you should have to copy anyone else’s context.
Mr. Tim_Roberts. Thank you very much for giving me multiple help. After 6 months of work, everything worked out for me. My driver intercepts all the outgoing trafic and sends it to the user program to make changes. Then it receives again already altered data and sends it to the network. Thank you again.
The development time could have been a little shorter if my English was perfect.
Thank you again.