if(FileInformationClass == 37) { PFILE_ID_BOTH_DIR_INFORMATION current = (PFILE_ID_BOTH_DIR_INFORMATION)FileInformation; PFILE_ID_BOTH_DIR_INFORMATION previous = NULL; do { RtlInitAnsiString(&ansiFileName, ""); if(current!= NULL) { if(current->FileName!= NULL) { RtlInitUnicodeString(&uniFileName, current->FileName); RtlUnicodeStringToAnsiString(&ansiFileName, &uniFileName, TRUE); if(RtlCompareMemory(ansiFileName.Buffer, HideFileOne.Buffer, HideFileOne.Length) == HideFileOne.Length) { if(!(current->NextEntryOffset)) { previous->NextEntryOffset = 0; break; } else { int iPos = ((ULONG)current) - (ULONG)FileInformation; int iLeft = (DWORD)Length - iPos - current->NextEntryOffset; RtlCopyMemory((PVOID)current, (PVOID)((char *)current + current->NextEntryOffset), (DWORD)iLeft ); continue; } } previous = current; current = (PFILE_ID_BOTH_DIR_INFORMATION)((char *)current + current->NextEntryOffset); } } }while(current->NextEntryOffset);
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)