Re the plurality issue: The doc is consistent with the parameter name as spelled in the doc. The fact that a formal parameter is declared and used with a different name is immaterial to the correctness of the documentation. (It specifies an interface, not implementation.) Re code paths: I see that a different code path is taken when nBytes > 0 and nBytes does not include the null-terminator than when other conditions pertain. Maybe there is a typo. Is "nul-terminator" a word (or phrase)?