Anybody ever use FltCbdqInsertIo?

Has anybody used the cancel-safe queues? I am seeing something strange. I implemented a queue and when I add a callback (FLT_CALLBACK_DATA) to it I see the Iopb pointer change and end up pointing to what looks like garbage. I inspect the Iopb just before calling FltCbdqInsertIo (Iopb looks OK here) and also break inside my insertion routine. The callback data that is passed to the insertion routine is the same pointer but the Iopb field has changed to some other value and none of the parameters appear correct.

Anybody have a clue as to what the problem might be?

Hi Rick.

Stupid question, but did you take a look at the “cancelSafe” sample (WDK)?

6000\src\filesys\miniFilter\cancelSafe

wrote news:xxxxx@ntfsd…
> Has anybody used the cancel-safe queues? I am seeing something strange.
> I implemented a queue and when I add a callback (FLT_CALLBACK_DATA) to it
> I see the Iopb pointer change and end up pointing to what looks like
> garbage. I inspect the Iopb just before calling FltCbdqInsertIo (Iopb
> looks OK here) and also break inside my insertion routine. The callback
> data that is passed to the insertion routine is the same pointer but the
> Iopb field has changed to some other value and none of the parameters
> appear correct.
>
> Anybody have a clue as to what the problem might be?
>

Not a stupid question at all. I had looked for samples a while back but I was looking at an older version of the driver kit that did not have this example. Looking at their sample was just enough to determine the cause (bad pointer passed to the insert call).

Thanks