UNPKG

libwin32

Version:

Node bindings to native Win32 DLLs through Koffi

18 lines 1.05 kB
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