First of all, pardon my ignorance, I am new to wine and winapi.
I am trying to implement apphelp.dll and I ran into issues with NtCreateFile: It always returns 0xc0000103, STATUS_NOT_A_DIRECTORY, and I am not sure what that means. Here is code:
/* This function is not in API, but written for internal use */ HANDLE WINAPI SdbOpenFile( LPCWSTR path, PATH_TYPE type ) { /* SNIP */ if (type == DOS_PATH) if (!RtlDosPathNameToNtPathName_U(path, &str, NULL, NULL)) return NULL; InitializeObjectAttributes(&attr, &str, OBJ_CASE_INSENSITIVE, NULL, NULL); status = NtCreateFile(&file, GENERIC_READ | SYNCHRONIZE | FILE_READ_ATTRIBUTES, &attr, &io, NULL, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_READ, FILE_OPEN, FILE_DIRECTORY_FILE, NULL, 0); /* SNIP */ return file; }
Function is called like this:
WCHAR szFileName[1024] = {0}; ExpandEnvironmentStringsW(L"%SystemRoot%\sample.sdb", szFileName, 1024); // for testing purposes SdbOpenFile(szFileName, DOS_PATH);
Compiled with winegcc. I am sure that C:\windows\sample.sdb exists. What am I doing wrong?