Funkcja GetHandleInformation()

Funkcja GetHandleInformation()
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam
Mam pytanie w jaki sposób odczytać flagi ustawione przez funkcję GetHandleInformation(). Poniżej kod

Kopiuj
 
#include <windows.h>
#include <stdio.h>

int main()
{
        HANDLE hFile;
        char Nazwa[]="C:\\testfile.txt";
        BOOL test;
        DWORD dFlags;

        hFile=CreateFile(Nazwa,
                        GENERIC_WRITE,
                        FILE_SHARE_WRITE,
                        NULL,
                        CREATE_ALWAYS,
                        FILE_ATTRIBUTE_NORMAL |FILE_ATTRIBUTE_ARCHIVE | SECURITY_IMPERSONATION,
                        NULL);
        if(hFile==INVALID_HANDLE_VALUE)
                printf("Function CreateFile return error: %d\n",GetLastError());

        printf("File handle is OK\n");
        test=GetHandleInformation(hFile,&dFlags);
        printf("%x\n",dFlags);
        printf("The return value is: %d, error: %d\n",test,GetLastError());
        CloseHandle(hFile);
        DeleteFile(Nazwa);

        getch();
        return 0;
}

Po wywołaniu tej funkcji flaga zawsze jest ustawiona na 0.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Zgodnie z dokumentacją GetHandleInformation zwraca tylko HANDLE_FLAG_INHERIT albo HANDLE_FLAG_PROTECT_FROM_CLOSE.

Nie wiem jak uzyskać PROTECT_FROM_CLOSE, ale INHERIT na pewno twój hFile nie ma, bo podajesz NULL w czwartym parametrze CreateFile.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.