I have a method like: void foo (__out char*& ptr) { ptr = NULL; if (etc.) ptr = something; } This gives a Prefast warning that the method might return NULL. Is there a variant of "__out" that would mean: "This method always returns a value in this parameter but the value might be NULL"? I'm using "__out" rather than "_Out_" because the DDK in use doesn't understand "_Out_".