- "Fix" SHChangeNotifyRegister to report file system changes. I am not really sure if these changes are correct but really make it work now.
CORE-1171
svn path=/trunk/; revision=69469
TRACE("(%p)(%p,%p,0x%08x)\n", this, Pidls[0], Pidls[1], lParam);
TRACE("(%p)(%p,%p,0x%08x)\n", this, Pidls[0], Pidls[1], lParam);
+ switch (lParam &~ SHCNE_INTERRUPT)
{
case SHCNE_MKDIR:
case SHCNE_CREATE:
{
case SHCNE_MKDIR:
case SHCNE_CREATE:
}
if( ( ( wEventId & SHCNE_NOITEMEVENTS ) &&
}
if( ( ( wEventId & SHCNE_NOITEMEVENTS ) &&
- ( wEventId & ~SHCNE_NOITEMEVENTS ) ) ||
+ ( wEventId & ~(SHCNE_NOITEMEVENTS | SHCNE_INTERRUPT) ) ) ||
( ( wEventId & SHCNE_ONEITEMEVENTS ) &&
( ( wEventId & SHCNE_ONEITEMEVENTS ) &&
- ( wEventId & ~SHCNE_ONEITEMEVENTS ) ) ||
+ ( wEventId & ~(SHCNE_ONEITEMEVENTS | SHCNE_INTERRUPT) ) ) ||
( ( wEventId & SHCNE_TWOITEMEVENTS ) &&
( ( wEventId & SHCNE_TWOITEMEVENTS ) &&
- ( wEventId & ~SHCNE_TWOITEMEVENTS ) ) )
+ ( wEventId & ~(SHCNE_TWOITEMEVENTS | SHCNE_INTERRUPT) ) ) )
{
WARN("mutually incompatible events listed\n");
return;
{
WARN("mutually incompatible events listed\n");
return;
LPNOTIFYREGISTER item = (LPNOTIFYREGISTER) lpOverlapped->hEvent;
TRACE("_NotificationCompletion\n");
LPNOTIFYREGISTER item = (LPNOTIFYREGISTER) lpOverlapped->hEvent;
TRACE("_NotificationCompletion\n");
if (dwErrorCode == ERROR_OPERATION_ABORTED)
{
/* Command was induced by CancelIo in the shutdown procedure. */
TRACE("_NotificationCompletion ended.\n");
return;
}
if (dwErrorCode == ERROR_OPERATION_ABORTED)
{
/* Command was induced by CancelIo in the shutdown procedure. */
TRACE("_NotificationCompletion ended.\n");
return;
}
/* This likely means overflow, so force whole directory refresh. */
if (!dwNumberOfBytesTransfered)
/* This likely means overflow, so force whole directory refresh. */
if (!dwNumberOfBytesTransfered)