About WdfRequestSetCompletionRoutine in WINDOWS10

I faced a problems recentlly. It confused me more than one week.

The code can be worked well below WIN7/XP, and can't worked on WIN8/WIN10 etc.

The usb device was designed by ISOC through EP2. The IC is CY68013A. Because of the raw image and no cache on device, I used internal 8 URBs to receive the data.

The flow looks like that:

WdfRequestCreate(Req) -> WdfRequestSetCompletionRoutine(CompletionRoutine) -> WdfRequestSend

and in CompletionRoutine function:

void CompletionRoutine(){

WdfRequestReuse(Req) -> WdfRequestSetCompletionRoutine(CompletionRoutine) -> WdfRequestSend


On WINDOWS10 when I set WdfRequestSetCompletionRoutine(CompletionRoutine) the BSOD will be happend. The bug check was 0x7F and arg1 was (0x08) Double Fault. If I comment it or WdfRequestSetCompletionRoutine(other), it will not be happend.

Please give me some suggestions.

Continue reading...
Top Bottom