Example #1
0
NTSTATUS
DokanSetDispositionInformation(
	 PEVENT_CONTEXT		EventContext,
	 PDOKAN_FILE_INFO	FileInfo,
	 PDOKAN_OPERATIONS	DokanOperations)
{
	PFILE_DISPOSITION_INFORMATION dispositionInfo =
		(PFILE_DISPOSITION_INFORMATION)((PCHAR)EventContext + EventContext->Operation.SetFile.BufferOffset);

	if (!DokanOperations->DeleteFile || !DokanOperations->DeleteDirectory)
		return STATUS_NOT_IMPLEMENTED;

	if (!dispositionInfo->DeleteFile) {
		return STATUS_SUCCESS;
	}

	if (FileInfo->IsDirectory) {
		return DokanOperations->DeleteDirectory(
			EventContext->Operation.SetFile.FileName,
			FileInfo);
	} else {
		return DokanOperations->DeleteFile(
			EventContext->Operation.SetFile.FileName,
			FileInfo);
	}
}