libwin32
Version:
Node bindings to native Win32 DLLs through Koffi
18 lines • 1.05 kB
JavaScript
import koffi from 'koffi-cream';
import { binaryBuffer } from '../private.js';
import { cBOOL, cINT, cDWORD, cHANDLE, cPVOID, cPDWORD, cNTSTATUS } from '../ctypes.js';
export const advapi32 = koffi.load('advapi32.dll');
export function getTokenInfo(hToken, infoClass, tokenInformationLength = binaryBuffer.byteLength) {
getTokenInfo.native ??= advapi32.func('GetTokenInformation', cBOOL, [cHANDLE, cINT, cPVOID, cDWORD, koffi.out(cPDWORD)]);
const pLength = [0];
return getTokenInfo.native(hToken, infoClass, binaryBuffer.buffer, tokenInformationLength, pLength) !== 0;
}
export function queryPolicyInfo(policyHandle, infoClass) {
queryPolicyInfo.native ??= advapi32.func('LsaQueryInformationPolicy', cNTSTATUS, [cHANDLE, cINT, koffi.out(koffi.pointer(cPVOID))]);
const pBuffer = [null];
return queryPolicyInfo.native(policyHandle, infoClass, pBuffer) || pBuffer[0];
}
export function lsaFree(ptr) {
return (lsaFree.native ??= advapi32.func('LsaFreeMemory', cNTSTATUS, [cPVOID]))(ptr);
}
//# sourceMappingURL=lib.js.map