on_after_can_file_be_deleted Event
Fires after the OS marks a file or directory for deletion or removes such a mark.
Syntax
class CBFilterAfterCanFileBeDeletedEventParams(object): @property def file_name() -> str: ... @property def can_delete() -> bool: ... @property def status() -> int: ... @status.setter def status(value) -> None: ... @property def file_context() -> int: ... @file_context.setter def file_context(value) -> None: ... @property def handle_context() -> int: ... @handle_context.setter def handle_context(value) -> None: ... @property def result_code() -> int: ... @result_code.setter def result_code(value) -> None: ... # In class CBFilter: @property def on_after_can_file_be_deleted() -> Callable[[CBFilterAfterCanFileBeDeletedEventParams], None]: ... @on_after_can_file_be_deleted.setter def on_after_can_file_be_deleted(event_hook: Callable[[CBFilterAfterCanFileBeDeletedEventParams], None]) -> None: ...
Remarks
This event fires after the OS marks the file or directory specified by FileName for deletion or removes such a mark. If the file or directory is marked for deletion, they will be actually removed not immediately but when the last handle is closed. Moreover, it is possible that a future call to a system function will remove the mark, so this event is not a final indicator that the file or directory will be deleted.
Files and directories can be deleted in two ways: a file or directory can be opened with the FILE_FLAG_DELETE_ON_CLOSE flag, or some process may call Windows API's NtSetInformationFile function with FILE_DISPOSITION_INFORMATION or FILE_DISPOSITION_INFORMATION_EX structure as a parameter.
Applications only need to handle this event if they've added a standard filter rule that includes the FS_CE_AFTER_CAN_DELETE flag.
The CanDelete parameter reflects whether the file or directory will be deleted.
The Status parameter contains an NT status code that indicates the outcome of the operation; 0 indicates success. To convert this value to a Win32 error code, call the nt_status_to_win_32_error method. Please note that this event won't fire for failed requests unless the process_failed_requests property is enabled. Applications may change this parameter's value if they want a different NT status code to be returned.
The FileContext and HandleContext parameters are placeholders for application-defined data associated with the file and specific handle, respectively. Please refer to the Contexts topic for more information.
The ResultCode parameter will always be 0 when the event is fired. If the event cannot be handled in a "successful" manner for some reason (e.g., a resource isn't available, security checks failed, etc.), set it to a non-zero value to report an appropriate error. Please refer to the Error Reporting and Handling topic for more information.
This event is fired synchronously; please refer to the Event Types topic for more information.