Jinoh Kang (@iamahuman) commented about server/mapping.c:
return page_mask + 1; }
+struct object *create_object_mapping( struct object *object, mem_size_t size, unsigned int attr, + const struct security_descriptor *sd, void **ptr ) +{ + static const struct unicode_str name_str = {object_mappingW, sizeof(object_mappingW)}; + static unsigned int access = FILE_READ_DATA | FILE_WRITE_DATA; + struct mapping *mapping; + void *tmp; + + if (!(mapping = create_mapping( object, &name_str, attr, size, SEC_COMMIT, 0, access, sd ))) return NULL;
Thanks for your effort for making `__wine_mapping` objects consistent with otber named objects. However, I don't think it's strictly necessary to make internal objects like the full-blown named objects. In fact, we can simply return an anonymous object from `lookup_name`. For instance, `console_device_lookup_name` constructs objects out of thin air whenever a server object is requested. Making the object anonymous will also make `mapping_link_name` unnecessary. (I haven't tested this approach; please feel free to correct me if I did a mistake) -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3103#note_58988