WFPoff WFP off consists just of one tiny Dynamic Link Library (DLL) - wfpoff.dll.
It currently has just one exported function -
DisableWFP
DisableWFP
The DisableWFP function disables Windows File Protection mechanism for a given file.
int DisableWFP(
LPCTSR lpFileName,
DWORD dwFlags
);
Parameters
- lpFileName
- [in] Pointer to a null-terminated string that specifies a filename for which Windows File Protection should be turned off.
Full path must precede the filename, e.g. "C:\WINDOWS\System32\sfmapi.dll".
- dwFlags
- [in] Combination of optional actions that should be done during the execution of the function. If no additional actions need to be taken, just pass 0 as this parameter. Currently only one flag is supported - PERMANENT_DISABLE.
PERMANENT_DISABLE: this flag instructs the function to not only disable Windows File Protection for a given file, but also to completely exclude that file from the internal Windows File Protection database so all subsequent calls to System File Check utilty (SFC.EXE) will not recognize that the file is changed or deleted. Reboot is required the changes to take effect and actually to exclude the file from the internal Windows File Protection database. So if you execute SFC.EXE WITHOUT reboot,
it will still recognize the changed files.
Return Values
If the functions succeeds, the return value is R_OK.
If the function fails, the return value is the error code.
Right after the successful function execution you can change, delete, or move the file that was protected by Windows File Protection. Please note that the function disables Windows File Protection for a given file only for a short period of time (about 1 minute) so the required action to the file should be done right after the successful function execution.
Error Codes
- R_OK = 0
- Indicates successful function return.
- R_WRONG_OS = -1
- Indicates that this version of Windows doesn't have Windows File Protection.
- R_BAD_FILE = -2
- Indicates that the given file is not protected by Windows File Protection.
- R_LIBRARY_FAIL = -3
- Internal error.
- R_OPEN_ERROR = -4
- Internal error.
- R_CREATE_ERROR = -5
- Internal error.
- R_MOVE_ERROR = -6
- Internal error.
- R_GET_TEMPFILE = -7
- Internal error.
Flags
PERMANENT_DISABLE = 1