- Cleanup the checks for mishbeaving objects a bit, and now quit the Dereference routine instead of doing the dereference. This has the advantage making console applications work again (note: this is NOT a fix. I'm just making the situation less bad until I fix ObDuplicateObject since that seems to be messing Events up, and until Cm gets fixed).

svn path=/trunk/; revision=22686
This commit is contained in:
Alex Ionescu 2006-06-29 05:20:16 +00:00
parent d02a403c94
commit 1c69156be9
2 changed files with 5 additions and 14 deletions

View file

@ -242,7 +242,7 @@ ObpCloseHandleTableEntry(IN PHANDLE_TABLE HandleTable,
//
// WE DONT CLOSE REGISTRY HANDLES BECAUSE CM IS BRAINDEAD
//
DPRINT("NOT CLOSING THE KEY\n");
DPRINT1("NOT CLOSING THE KEY\n");
}
else
{

View file

@ -90,27 +90,18 @@ ObfDereferenceObject(IN PVOID Object)
if (Header->PointerCount <= Header->HandleCount)
{
if (!wcscmp(Header->Type->Name.Buffer, L"Event"))
{
//KEBUGCHECK(0);
}
DPRINT1("Misbehaving object: %wZ\n", &Header->Type->Name);
return;
}
/* Check whether the object can now be deleted. */
if (!(InterlockedDecrement(&Header->PointerCount)))
{
/* Sanity check */
if (wcscmp(Header->Type->Name.Buffer, L"Key"))
if(Header->HandleCount)
{
if(Header->HandleCount)
{
DPRINT1("Unexpected misbehaving object: %wZ\n", &Header->Type->Name);
}
}
else
{
DPRINT1("Cm needs fixing!\n");
DPRINT1("Misbehaving object: %wZ\n", &Header->Type->Name);
return;
}
/* Check if we're at PASSIVE */