[email protected] wrote:
>> And the reason you couldn't pass Parameters?
> Because KeBugCheck expects the array to contain 4 entries, and Parameters 
> isn't guranteed to be that big.
> What do you think of the following?
>
> NTSTATUS NTAPI ExpSystemErrorHandler (

> // ... abbreviated ...
> {
>    ULONG_PTR BugCheckParameters[MAXIMUM_HARDERROR_PARAMETERS] = {0, 0, 0, 0};
>    // ... abbreviated ...

>    for (i = 0; i < NumberOfParameters; i++)
>    {
>        /* Copy them over */
>        BugCheckParameters[i] = Parameters[i];
>    }


If you are going to use that, you'd better include something like this first:

 

    if (NumberOfParameters > MAXIMUM_HARDERROR_PARAMETERS)

        NumberOfParameters = MAXIMUM_HARDERROR_PARAMETERS;


or make it

 

    for (i = 0; i < min( NumberOfParameters, MAXIMUM_HARDERROR_PARAMETERS ); 
i++)


or you might create more problems than you solve, unless you're 100% guarateed

you can never receive more than MAXIMUM_HARDERROR_PARAMETERS.

(This said without studying the actual problem at hand).

 

Best Regards // Love

                                          
_________________________________________________________________
Keep your friends updated—even when you’re not signed in.
http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_5:092010
_______________________________________________
Ros-dev mailing list
[email protected]
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to