[ros-dev] KeBugCheck

James Tabor jimtabor at adsl-64-217-116-74.dsl.hstntx.swbell.net
Sat Apr 9 10:50:26 CEST 2005


Hi,
Hartmut Birr wrote:
> 
> I get weird crashs if I set OARCH to pentium4. Looking to te PAGED_CODE
> macro in ExMapHandleToPointer:
> 
> PHANDLE_TABLE_ENTRY
> ExMapHandleToPointer(IN PHANDLE_TABLE HandleTable,
>                      IN LONG Handle)
> {
> 80027801:    55                       push   %ebp
> 80027802:    89 e5                    mov    %esp,%ebp
> 80027804:    83 ec 08                 sub    $0x8,%esp
>   PHANDLE_TABLE_ENTRY HandleTableEntry;
> 
>   PAGED_CODE();
> 80027807:    e8 84 3c 06 00           call   8008b490 <_KeGetCurrentIrql at 0>
> 8002780c:    3c 01                    cmp    $0x1,%al
> 8002780e:    76 49                    jbe    80027859
> <_ExMapHandleToPointer+0x58>
> 80027810:    e8 7b 3c 06 00           call   8008b490 <_KeGetCurrentIrql at 0>
> 80027815:    25 ff 00 00 00           and    $0xff,%eax
> 8002781a:    50                       push   %eax
> 8002781b:    68 8d 03 00 00           push   $0x38d
> 80027820:    68 70 13 0b 80           push   $0x800b1370
> 80027825:    68 7c 13 0b 80           push   $0x800b137c
> 8002782a:    e8 21 b7 ff ff           call   80022f50 <_DbgPrint>
> ...
> 
> The first call to KeGetCurrentIrql returns an irql which is higher than
> APC level. The second call returns PASSIVE_LEVEL. This can't occur
> because there is no function which  raise or lower the irql. It may be
> possible , that a task switch occur before and after the first call to
> KeGetCurrentIrql and which has set the irql to a wrong value.
> 
> - Hartmut
> 
Was it in idle? I left my system running, just idling. Come back ~12 hours later
and find it in a blue state of mind.

BTW, Csrss eats 3 to 5% of the system just setting there.

James


More information about the Ros-dev mailing list