' ########################################################################################
' Microsoft Windows
' File: Sfc.inc
' Contents: Header file for public SFC interfaces.
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_Sfc_PBI)
#DEFINE PBX_Sfc_PBI
%EQUATE `SFC_INC = 1
#INCLUDE ONCE "Core/Windows.inc"
%EQUATE `SFC_DISABLE_NORMAL = 0
%EQUATE `SFC_DISABLE_ASK = 1
%EQUATE `SFC_DISABLE_ONCE = 2
%EQUATE `SFC_DISABLE_SETUP = 3
%EQUATE `SFC_DISABLE_NOPOPUPS = 4
%EQUATE `SFC_SCAN_NORMAL = 0
%EQUATE `SFC_SCAN_ALWAYS = 1
%EQUATE `SFC_SCAN_ONCE = 2
%EQUATE `SFC_SCAN_IMMEDIATE = 3
%EQUATE `SFC_QUOTA_DEFAULT = 50
%EQUATE `SFC_QUOTA_ALL_FILES = &HFFFFFFFF ' ((ULONG)-1)
$$SFC_IDLE_TRIGGER = "WFP_IDLE_TRIGGER"$$
' // Size = 524 bytes
TYPE PROTECTED_FILE_DATA BYTE
 FileName AS WSTRINGZ * %MAX_PATH ' WCHAR
 FileNumber AS DWORD
END TYPE
DECLARE FUNCTION SfcGetNextProtectedFile LIB "sfc.dll" ALIAS "SfcGetNextProtectedFile" ( BYVAL RpcHandle AS QUAD , BYREF PROTECTED_FILE_DATA ) AS LONG
DECLARE FUNCTION SfcIsFileProtected LIB "sfc.dll" ALIAS "SfcIsFileProtected" ( BYVAL RpcHandle AS QUAD
 , BYREF ProtFileName AS WSTRINGZ
 ) AS LONG
DECLARE FUNCTION SfcIsKeyProtected LIB "sfc.dll" ALIAS "SfcIsKeyProtected" ( BYVAL KeyHandle AS DWORD
 , BYREF SubKeyName AS WSTRINGZ
 , BYVAL KeySam AS REGSAM
 ) AS LONG
'//
'// new APIs which are not currently supported, but are stubbed out
'//
'WINAPI
'SfpVerifyFile(
' );
#ENDIF
