(#10614) Fix error checking for Windows BOOL return values
Previously, the agent could segfault when attempting to manage a DACL
on a non-NTFS filesystem. The problem was that we were incorrectly
checking the return value from several of the Windows APIs due to the
windows gems automatically converting BOOL values into ruby true/false
values.
For example, this call returns a ruby true/false value:
API.new('IsValidAcl', 'P', 'B', 'advapi32')
But this one will return an integer value:
API.new('GetSecurityInfo', 'LLLPPPPP', 'L', 'advapi32')
The crash is now fixed because we correctly raise an exception when
IsValidAcl returns false.
Paired-with: Nick Lewis <nick@puppetlabs.com>