Перечитал все ветки здесь про захват пакетов всю эту лабоду. но.
вот код
void CreateDriverMarkedBuffer(PNDIS_STATUS status, PNDIS_BUFFER *buffer)
{
char *dataBuffer = ExAllocatePool(NonPagedPool, 6);
NdisZeroMemory(dataBuffer, 6);
dataBuffer[0] = DRIVER_PACKAGE_CLASS_ID;
dataBuffer[5] = DRIVER_PACKAGE_VERSION;
NdisAllocateBuffer(status, buffer, DRIVER_CUSTOM_DATA.BufferPoolHandle, dataBuffer, 6);
}
void attachMarkerToPackage(PNDIS_PACKET package)
{
NDIS_STATUS status = 0xFFFF;
PNDIS_BUFFER buffer = NULL;
CreateDriverMarkedBuffer(&status, &buffer);
if (status != NDIS_STATUS_SUCCESS)
{
return;
}
if ((buffer != NULL) && (package != NULL))
NdisChainBufferAtFront(package, buffer);
}
по каким блин причинам оно может валится когда делает
NdisChainBufferAtFront -?