i was told not to wait for worker thread of a
irp_mj_read
completion routine to complete, in my bad pool
header post. i
was thinking is a better way to make a thread and
use a
linked list to pass the irp_mj_read packets i am
filtering on
a linked list /que, type structure and let the thread edit
and then
complete processing of the irp ? is this the best
way ? is
there anyone knows that i can look at.
rough idea is atm… (please advise)
io_completion_routine( theirp )
{
add_irp_Global_que( theirp );
return STATUS_MORE_PROCESSING _REQUIRED;
}
//worker thread created when driver is stated
athread( )
{
if (IRP_IN_QUE)
{
irp = get_irp_from_que();
edit_data(irp);
IoCompleteRequest( irp );
remove_irp_from_que();
}
}
will this method be fast enough ?