Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
 /// <inheritdoc />
 public unsafe partial byte *GetStringList(Device *device, GetEnumerationContextStringList param);
Beispiel #3
0
 /// <inheritdoc />
 public abstract unsafe char *GetStringList(Device *device, GetEnumerationContextStringList param);