It's been a while since I've used Win32::API, but from your link on the CredRead function, I believe the argument prototype should be
[qw(P I I S)], not
[qw(P P)]. then you'll need to pre-allocate the size of the structure returned in the last argument, which you can try to do with Win32::API::Struct (read the
Win32::API docs), so that you'll have a convenient object to peek into the structure with.