!(Thread->CombinedApcDisable))
{
/* Bad! */
- DPRINT1("EX: resource: APCs still enabled before resource %p acquire "
+ DPRINT1("EX: resource: APCs still enabled before resource %p acquire/release "
"!!!\n", Resource);
DbgBreakPoint();
}
else
{
/* Copy the table */
- RtlCopyMemory(Table, Owner, OldSize * sizeof(OWNER_ENTRY));
+ if (Owner) RtlCopyMemory(Table, Owner, OldSize * sizeof(OWNER_ENTRY));
/* Acquire dispatcher lock to prevent thread boosting */
OldIrql = KiAcquireDispatcherLock();
ExAcquireResourceLock(Resource, &LockHandle);
/* Dump debug information */
- DPRINT1("Resource @ %lx\n", Resource);
+ DPRINT1("Resource @ %p\n", Resource);
DPRINT1(" ActiveEntries = %04lx Flags = %s%s%s\n",
Resource->ActiveEntries,
IsOwnedExclusive(Resource) ? "IsOwnedExclusive " : "",
ExReleaseResourceLite(IN PERESOURCE Resource)
{
/* Just call the For-Thread function */
- ExReleaseResourceForThreadLite(Resource, (ERESOURCE_THREAD)PsGetCurrentThread());
+ ExReleaseResourceForThreadLite(Resource, ExGetCurrentResourceThread());
}
/*++
/* Sanity checks */
ExpVerifyResource(Resource);
- ExpCheckForApcsDisabled(LockHandle.OldIrql, Resource, (PKTHREAD)Thread);
+ ExpCheckForApcsDisabled(LockHandle.OldIrql, Resource, KeGetCurrentThread());
/* Check if it's exclusively owned */
if (IsOwnedExclusive(Resource))