[DllImport("fbwflib.dll", SetLastError=true)]
[return: MarshalAs(UnmanagedType.U4)]
static extern uint FbwfGetVolumeList(
[In] [MarshalAs(UnmanagedType.U1)]
bool currentSession,
[In]
IntPtr volumeList,
[In, Out][MarshalAs(UnmanagedType.U4)]
ref UInt32 size);
Declare Function FbwfGetVolumeList Lib "fbwflib.dll" (TODO) As TODO
None.
Do you know one? Please contribute it!
Code is tested on Windows Embedded Standard 7 32bit.
The "volumeList" parameter is a pointer to a multi-wide-string meaning one character consists of 2 bytes, every string is terminated by 2 NUL bytes and the whole thing is terminated by 4 NUL bytes.
Using a custom marshaler for this type might be possible as it is used a couple of times in this API.
uint size = 100;
var pBuffer = Marshal.AllocHGlobal((int)size);
NativeMethods.FbwfGetVolumeList(true, pBuffer, ref size);
//TODO convert pbuffer to strings