Re: Question about workitem.



Doron,
Thanks.
See inline:

"Doron Holan [MSFT]" wrote:

what is the sync level that you specify when creating your WDFDEVICE?


I set SynchronizationScope to WdfSynchronizationScopeNone. If I set to
WdfSynchronizationScopeDevice, WdfWorkItemCreate will fail. Why?

Now I got blue screen, See following WinDBG message. The line in the source
which point by debugger dose not cause the crash. I did make sure my work
item call back function has returned before I en queue another one. The crash
is always at the same place, at the call WdfRequestCompleteWithInformation

I couldn't figure out what is wrong?

Thanks,

May

*** Fatal System Error: 0x00000050
(0x9ACAF003,0x00000001,0x9B9CFE4C,0x00000000)

Driver at fault:
*** CCADCCP.sys - Address 9B9CFE4C base at 9B9CD000, DateStamp 48e25064
..
Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

Connected to Windows Server 2008 6001 x86 compatible target, ptr64 FALSE
Loading Kernel Symbols
.............................................................................................................................................................................................
Loading User Symbols

Loading unloaded module list
........
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 50, {9acaf003, 1, 9b9cfe4c, 0}

Probably caused by : CCADCCP.sys ( CCADCCP!CcpWorker+82c )

Followup: MachineOwner
---------

nt!RtlpBreakWithStatusInstruction:
819b566c cc int 3
0: kd> !analyze -v
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************

PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced. This cannot be protected by try-except,
it must be protected by a Probe. Typically the address is just plain bad or
it
is pointing at freed memory.
Arguments:
Arg1: 9acaf003, memory referenced.
Arg2: 00000001, value 0 = read operation, 1 = write operation.
Arg3: 9b9cfe4c, If non-zero, the instruction address which referenced the
bad memory
address.
Arg4: 00000000, (reserved)

Debugging Details:
------------------


WRITE_ADDRESS: 9acaf003

FAULTING_IP:
CCADCCP!CcpWorker+82c
[c:\dev\mediacipherccp\ccp\winccpdriver\sys\ccpwininit.c @ 1065]
9b9cfe4c 884a03 mov byte ptr [edx+3],cl

MM_INTERNAL_CODE: 0

IMAGE_NAME: CCADCCP.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 48e25064

MODULE_NAME: CCADCCP

FAULTING_MODULE: 9b9cd000 CCADCCP

DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

BUGCHECK_STR: 0x50

PROCESS_NAME: System

CURRENT_IRQL: 2

TRAP_FRAME: 8d957c48 -- (.trap 0xffffffff8d957c48)
ErrCode = 00000002
eax=8685acb0 ebx=00000000 ecx=8bf73905 edx=9acaf000 esi=8688af78 edi=8181f210
eip=9b9cfe4c esp=8d957cbc ebp=8d957d10 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010246
CCADCCP!CcpWorker+0x82c:
9b9cfe4c 884a03 mov byte ptr [edx+3],cl
ds:0023:9acaf003=??
Resetting default scope

LAST_CONTROL_TRANSFER: from 8188ca72 to 819b566c

STACK_TEXT:
8d95773c 8188ca72 00000003 bb1452e2 00000065 nt!RtlpBreakWithStatusInstruction
8d95778c 8188d53b 00000003 c04d6578 00003ff8 nt!KiBugCheckDebugBreak+0x1c
8d957b50 81950e92 00000050 9acaf003 00000001 nt!KeBugCheck2+0x67f
8d957c30 819c3a94 00000001 9acaf003 00000000 nt!MmAccessFault+0x14a
8d957c30 9b9cfe4c 00000001 9acaf003 00000000 nt!KiTrap0E+0xe4
8d957d10 8bc475f4 79775080 81bf351c 8688af78 CCADCCP!CcpWorker+0x82c
[c:\dev\mediacipherccp\ccp\winccpdriver\sys\ccpwininit.c @ 1065]
8d957d2c 8bc47657 86895eb0 8d957d4c 81d1ee59
Wdf01000!FxWorkItem::WorkItemHandler+0x76
8d957d38 81d1ee59 86895eb0 8688af78 8582fad0
Wdf01000!FxWorkItem::WorkItemThunk+0x19
8d957d4c 819abe1e 868a3a98 85809c08 8582fad0 nt!IopProcessWorkItem+0x43
8d957d84 81ebb197 868a3a98 bb1458ae 00000000 nt!ExpWorkerThread+0x146
8d957dc0 819c597e 819abcd8 00000001 00000000 nt!PspSystemThreadStartup+0x17b
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16


STACK_COMMAND: kb

FOLLOWUP_IP:
CCADCCP!CcpWorker+82c
[c:\dev\mediacipherccp\ccp\winccpdriver\sys\ccpwininit.c @ 1065]
9b9cfe4c 884a03 mov byte ptr [edx+3],cl

SYMBOL_STACK_INDEX: 5

SYMBOL_NAME: CCADCCP!CcpWorker+82c

FOLLOWUP_NAME: MachineOwner

FAILURE_BUCKET_ID: 0x50_W_CCADCCP!CcpWorker+82c

BUCKET_ID: 0x50_W_CCADCCP!CcpWorker+82c

Followup: MachineOwner
---------




"May" <May@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:B7CB3A4A-8582-476D-800C-29B50463E215@xxxxxxxxxxxxxxxx
Hello,
I need to do several things after I got interrupt. In between the several
things, I need to call delay to wait a little bit. But I couldn't call
delay
at DPC level, so in my interrupt DPC routine, I call a function to create
a
work item and do all those things at workitem call back function. I
followed
sample of kmdf\pcidrv which do the same thing I want to do. But when I
call
WdfWorkItemCreate, I got error "STATUS_WDF_INCOMPATIBLE_EXECUTION_LEVEL"

I couldn't figure out why since I do the exact same thing with sample code
of pcidrv?

It was said "Parent object's execution level is not
WDFExecutionLevelPassive?

In PCIDRV, the parent object is wdfDevice which initialize at
EvtDeviceAdd,
I did same thing.
WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, CCP_WORKITEM);
attributes.ParentObject = FdoData->WdfDevice;

What is wrong? where is wrong? What is the best way to do this?

Thanks,

May


.



Relevant Pages

  • Re: MyString Class
    ... > I compiled your program and run it under the debugger. ... > The first crash happens in ... ... > memory is flawed. ... First bug fixed. ...
    (comp.lang.cpp)
  • RE: Memory increasing even when in debug-break
    ... there are 2 types of memory leak in .Net: ... More interesting is the debugger breaks while memory still increasing ... Microsoft Online Community Support ...
    (microsoft.public.vsnet.debugging)
  • Storport WMI BSOD
    ... I am adding WMI support to my storport driver and the situation is that ... ScsiPortWmiFireLogicalUnitEvent function results in BSOD while ... A fatal system error has occurred. ... Debugger entered on first try; Bugcheck callbacks have not been invoked. ...
    (microsoft.public.development.device.drivers)
  • Re: blue screen error - Symbols can not be loaded...
    ... What version, if any, of Daemon Tools do you have installed? ... Enquire, plan and execute ... These types of error can always be down to bad memory. ... Your debugger is not using the correct symbols ...
    (microsoft.public.windowsxp.general)
  • Re: [long] Win2k USBtoCOM driver crash at usbd.sys
    ... A fatal system error has occurred. ... Debugger entered on first try; Bugcheck callbacks have not been invoked. ... Arg2: 00000002, IRQL ... FOLLOWUP_NAME: MachineOwner ...
    (microsoft.public.development.device.drivers)