IRQL_NOT_LESS_OR_EQUAL

Hi All,
I am having IRQL_NOT_LESS_OR_EQUAL problem and I think its because of
bad pointer allocation.

I am making a link list whose elements are in NonPagedPool.
The structure being

typedef struct _DELFILES{
UNICODE_STRING FileName;
struct MyLinkList * next;
}DELFILES, * PDELFILES;

NOW FROM THIS SMALL ROUTINE I WANT TO ASK

PDELFILES psElement = (PDELFILES) ExAllocatePoolWithTag(NonPagedPool,
sizeof(DELFILES), ‘1leD’);
FileObject = irpStack->FileObject;
FileName = &FileObject->FileName;
(&psElement->DelFName)->MaximumLength = FileName->MaximumLength + 2;
(&psElement->DelFName)->Buffer =
ExAllocatePoolWithTag(NonPagedPool,
(&psElement->DelFName)->MaximumLength,‘2leD’);

(I) If I am allocating memory like above,would it create a problem if this
linked list is populated extensively. And the linked list is accessed for
comparision very extensively.
(II)The various elements of this routine are later accessed in the
completion routine. I have taken appropriate synchronization steps but
still am getting IRQL_NOT_LESS_OR_EQUAL. Please Suggest.

Can stack memory also lead to error.

Thanks
Lalit.