Win2k ddk

4 отговора 239 прегледа
#1

Win2k ddk

shte moje li da mi kajete zashto koda:

----------------------------------------------------
RtlInitUnicodeString(&fileName, L"\\??\\C:\\test.txt");
InitializeObjectAttributes(&attributes, &fileName, NULL, NULL, NULL, OBJ_CASE_INSENSITIVE);

status = ZwCreateFile( &ffile,
GENERIC_WRITE,
&attributes,
&statusBlock,
0,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_WRITE,
FILE_OVERWRITE_IF,
FILE_NON_DIRECTORY_FILE,
NULL,
0);

ZwWriteFile( ffile,
NULL,
NULL,
NULL,
&statusBlock,
"Start ....... ",
strlen("Start ....... ") ,
0,
0);
ZwClose(ffile);
--------------------------------------------------------------
suzdawa fail a ne zapiswa nishto w nego?
Stawa wapros za kernel-mode driver ... toi se instalira i startira(?), za shtoto wse pak suzdawa gorniq fail ... no zashto po dqwolite ne shte da pishe w nego ????

Отговор
в отговор на mitkohr #2

Re: Win2k ddk

казваме:
при създаване на файла флагът не е GENERIC_WRITE, а FILE_GENERIC_WRITE.
това са различни неща (можеш да погледнеш header-ите). е.. документацията малко послъгва, но който не е послъгвал нека пръв хвърли камък.

Отговор
в отговор на _ #3

Re: Win2k ddk

10x za infoto, werno che w headers pishe taka :)... probwah go i s FILE_GENERIC_WRITE, ama tz ne stawa .:(( .. znachi faila si se suzdawa bes problemi, i weche suzdaden fail sushto si e ok no gadinata ne shte da pishe w nego ..... Da ne bi da sum oburkal neshto s drugite attributi - FileAttributes, ShareAccess, CreateDisposition, CreateOptions???

Отговор
в отговор на mitkohr #4

Re: Win2k ddk

гхм..
при мен (winXP) това работи:

#define _X86_
#include <ntddk.h>

int main(void)
{
PCWSTR filename = L"\\??\\C:\\test.log";
UNICODE_STRING name;
IO_STATUS_BLOCK iosb;
HANDLE h;
OBJECT_ATTRIBUTES oa = {sizeof(oa), 0, &name, OBJ_CASE_INSENSITIVE};

RtlInitUnicodeString(&name, filename);

ZwCreateFile(&h, FILE_GENERIC_WRITE, &oa, &iosb, 0, FILE_ATTRIBUTE_NORMAL, 0,
FILE_OVERWRITE_IF, FILE_NON_DIRECTORY_FILE |FILE_SYNCHRONOUS_IO_NONALERT, 0, 0);
ZwWriteFile(h, 0, 0, 0, &iosb, "Ura!", 4, 0, 0);

ZwClose(h);
return 0;
}



като гледам така издалече - FILE_SYNCHRONOUS_IO_NONALERT ти трябва.

Отговор
в отговор на _ #5

Re: Win2k ddk

Jiv i zdraw da si ... :))
Stana pushtinata mu niedna .. :))
Mnogo 10x qwno tui e biz prichinata .. :)

Отговор