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)