FbwfGetVolumeList (fbwflib)
Last changed: anonymous

.
Summary
Retrieves the list of protected volumes for either the current or next session.

C# Signature:

[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);

VB Signature:

Declare Function FbwfGetVolumeList Lib "fbwflib.dll" (TODO) As TODO

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

Code is tested on Windows Embedded Standard 7 32bit.

Tips & Tricks:

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.

Sample Code:

uint size = 100;
var pBuffer = Marshal.AllocHGlobal((int)size);
NativeMethods.FbwfGetVolumeList(true, pBuffer, ref size);
//TODO convert pbuffer to strings

Documentation