본문 바로가기
코드/kernel

[WDK] ZwDeleteFile로 파일 삭제 예

by WeZZ 2008. 12. 23.






    OBJECT_ATTRIBUTES oa;
    ANSI_STRING   FileNameAnsi;
    UNICODE_STRING  FileNameUnicode;
    PCHAR FilePath = (PCHAR)Irp->AssociatedIrp.SystemBuffer;
    CHAR  szTemp[300] = "\\??\\";
    HANDLE Directory = NULL;
    
    strcat( szTemp , FilePath );
    RtlInitAnsiString(&FileNameAnsi, szTemp);
    ntStatus = RtlAnsiStringToUnicodeString(&FileNameUnicode, &FileNameAnsi, TRUE);

    if( ntStatus == STATUS_SUCCESS )
    {
          InitializeObjectAttributes(&oa, &FileNameUnicode, OBJ_CASE_INSENSITIVE , NULL, NULL);
          ntStatus = ZwDeleteFile( &oa );
          RtlFreeUnicodeString(&FileNameUnicode);
    }




풀 패스 경로 앞에 "\\??\\"; 붙여 주는게 중요하다..
자세한 건 좀 더 공부 후에..ㅎ