There are two main reason to put tags on a question: to refine searches, and to constitute collections of questions (e.g. subscribing to a tag to see all the questions in that tag). A tag is useful when the word might otherwise not occur in the question, but more often it's useful to separate the questions where the topic is central from those where it's only incidental.
For example, malloc isn't just about one function, it's about the dynamic memory allocation API of C. You'll notice that it has subscribers, unlike cgimagecreatewithmask and readdirectorychangesw. More importantly, I think, malloc should categorize the questions that are about dynamic memory allocation in C, as opposed to those that merely include a code snippet that calls malloc
.
Also the number of uses is a first indicator of whether the tag should exist. Contrast malloc's 768 with cgimagecreatewithmask's 3 and readdirectorychangesw's 21. You need to weigh in the topic's popularity though; for example coq only has 20 questions on SO, but it's a well-defined topic with 40 subscribers.
There's a large gap between the whole platform standard library (winapi) and one particular function (readdirectorychangesw). Is there an intermediate tag that could fill the gap? (Something like stdio or curses.) Otherwise, a concept tag like directory would be a good indication.