add _app_queue_resolver

This commit is contained in:
henrypp committed 2021-12-03 11:03:39 +06:00
1 parent 2c2b73e474
commit cbf926e8e5
2 files changed
+22 -7

No files matched your search

+20 -6
View File
@@ -1165,12 +1165,12 @@ BOOLEAN _app_setruletoapp (_In_ HWND hwnd, _Inout_ PITEM_RULE ptr_rule, _In_ INT
if (item_id != -1)
{
listview_id = _app_getlistviewbytype_id (ptr_rule->type);
listview_id = _app_listview_getbytype (ptr_rule->type);
_app_updateitembylparam (hwnd, _app_getlistviewitemcontext (hwnd, listview_id, item_id), FALSE);
_app_listview_updateitemby_param (hwnd, _app_listview_getitemcontext (hwnd, listview_id, item_id), FALSE);
}
_app_updateitembylparam (hwnd, ptr_app->app_hash, TRUE);
_app_listview_updateitemby_param (hwnd, ptr_app->app_hash, TRUE);
return TRUE;
}
@@ -1538,7 +1538,7 @@ PR_STRING _app_resolveaddress_interlocked (_In_ PVOID volatile *string, _In_ ADD
return current_string;
}
VOID _app_queryfileinformation (_In_ PR_STRING path, _In_ ULONG_PTR app_hash, _In_ ENUM_TYPE_DATA type, _In_ INT listview_id)
VOID _app_queue_fileinformation (_In_ PR_STRING path, _In_ ULONG_PTR app_hash, _In_ ENUM_TYPE_DATA type, _In_ INT listview_id)
{
PITEM_APP_INFO ptr_app_info;
@@ -1580,6 +1580,20 @@ VOID _app_queryfileinformation (_In_ PR_STRING path, _In_ ULONG_PTR app_hash, _I
_r_workqueue_queueitem (&file_queue, &_app_queuefileinformation, ptr_app_info);
}
VOID _app_queue_resolver (_In_ HWND hwnd, _In_ INT listview_id, _In_ ULONG_PTR hash_code, _In_ PVOID base_address)
{
PITEM_CONTEXT context;
context = _r_freelist_allocateitem (&context_free_list);
context->hwnd = hwnd;
context->listview_id = listview_id;
context->lparam = hash_code;
context->base_address = _r_obj_reference (base_address);
_r_workqueue_queueitem (&resolver_queue, &_app_queueresolveinformation, context);
}
VOID NTAPI _app_queuefileinformation (_In_ PVOID arglist, _In_ ULONG busy_count)
{
PITEM_APP_INFO ptr_app_info;
@@ -1610,7 +1624,7 @@ VOID NTAPI _app_queuefileinformation (_In_ PVOID arglist, _In_ ULONG busy_count)
{
if (_r_wnd_isvisible (hwnd))
{
if (ptr_app_info->listview_id == _app_getcurrentlistview_id (hwnd))
if (ptr_app_info->listview_id == _app_listview_getcurrent (hwnd))
_r_listview_redraw (hwnd, ptr_app_info->listview_id, -1);
}
}
@@ -1758,7 +1772,7 @@ VOID NTAPI _app_queueresolveinformation (_In_ PVOID arglist, _In_ ULONG busy_cou
{
if (_r_wnd_isvisible (context->hwnd))
{
if (_app_getcurrentlistview_id (context->hwnd) == context->listview_id)
if (_app_listview_getcurrent (context->hwnd) == context->listview_id)
_r_listview_redraw (context->hwnd, context->listview_id, -1);
}
}
+2 -1
View File
@@ -96,7 +96,8 @@ PR_STRING _app_resolveaddress (_In_ ADDRESS_FAMILY af, _In_ LPCVOID address);
PR_STRING _app_resolveaddress_interlocked (_In_ PVOID volatile *string, _In_ ADDRESS_FAMILY af, _In_ LPCVOID address, _In_ BOOLEAN is_resolutionenabled);
VOID _app_queryfileinformation (_In_ PR_STRING path, _In_ ULONG_PTR app_hash, _In_ ENUM_TYPE_DATA type, _In_ INT listview_id);
VOID _app_queue_fileinformation (_In_ PR_STRING path, _In_ ULONG_PTR app_hash, _In_ ENUM_TYPE_DATA type, _In_ INT listview_id);
VOID _app_queue_resolver (_In_ HWND hwnd, _In_ INT listview_id, _In_ ULONG_PTR hash_code, _In_ PVOID base_address);
VOID NTAPI _app_queuefileinformation (_In_ PVOID arglist, _In_ ULONG busy_count);
VOID NTAPI _app_queuenotifyinformation (_In_ PVOID arglist, _In_ ULONG busy_count);