/// <inheritdoc cref="GetString(Device*, GetEnumerationContextString)" /> public IEnumerable <string> GetStringList(GetEnumerationContextStringList param) { unsafe { var result = GetStringList(null, param); if (result == (byte *)0) { return(new List <string>()); } var strings = new List <string>(); var currentPos = result; while (true) { var currentString = Marshal.PtrToStringAnsi((nint)currentPos); if (string.IsNullOrEmpty(currentString)) { break; } strings.Add(currentString); currentPos += currentString.Length + 1; } return(strings); } }
/// <inheritdoc /> public unsafe partial byte *GetStringList(Device *device, GetEnumerationContextStringList param);
/// <inheritdoc /> public abstract unsafe char *GetStringList(Device *device, GetEnumerationContextStringList param);