ZwWriteFile и STATUS_INVALID_PARAMETER

Тема в разделе "WASM.BEGINNERS", создана пользователем at0s, 1 дек 2009.

  1. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    Привет,
    ZwWriteFile постоянно возвращает STATUS_INVALID_PARAMETER ( 0xC000000D ), перебрал все, посмотрел кучу примеров, MSDN, не могу найте ошибку, файл создается пустой, помогите кто чем может.

    Код (Text):
    1.    
    2.    ntStatus =ZwCreateFile(
    3.                     &FileHandle,
    4.                     GENERIC_ALL,//FILE_APPEND_DATA,//FILE_WRITE_DATA,//GENERIC_WRITE,  попробовал все
    5.                     &OBJECT_ATTRIB,
    6.                     &myIO_STATUS_BLOCK,
    7.                 NULL,
    8.                 FILE_ATTRIBUTE_NORMAL,
    9.                 NULL,
    10.                 FILE_CREATE,
    11.                     FILE_NON_DIRECTORY_FILE,
    12.                     NULL, 0);
    13.         }
    14.  
    15.   if(FileHandle && !(ntStatus))
    16.     {
    17.     KdBreakPoint();
    18.         ntStatus = RtlStringCbPrintfA(buffer, sizeof(buffer), "httpdddddddddddddddddddddddd", 0x0);
    19.             if(!(ntStatus))  //ok
    20.             {
    21.                    ntStatus = RtlStringCbLengthA(buffer, sizeof(buffer), &cb);
    22.                    if(!(ntStatus)) // ok
    23.                    {
    24.                        ntStatus = ZwWriteFile(FileHandle,
    25.                                      NULL, NULL, NULL,
    26.                                      &myIO_STATUS_BLOCK,
    27.                                  buffer,
    28.                                      cb,
    29.                                     NULL, NULL);
    30.                 DbgPrint("****ZwWriteFile******ntStAtus: 0x%x\n ",ntStatus);       // 0xC000000D:
    31.                                                                                                               // STATUS_INVALID_PARAMETER ???
    32.                   }        
    33.                }       
    34.        
    35.     ntStatus =ZwClose(FileHandle );
    36.     DbgPrint("ZwClose*************ntStAtus: 0x%x\n ",ntStatus);
    37.      
    38.         }
    p.s. myIRQlevel == PASSIVE_LEVEL
     
  2. Klayd

    Klayd Степан

    Публикаций:
    0
    Регистрация:
    7 апр 2006
    Сообщения:
    59
    Адрес:
    Киев
  3. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    спасибо заработало

    самое смешное, на сайте microsoft в support-e написанно NULL вместо 0 ;))
     
  4. tyug

    tyug New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2008
    Сообщения:
    19
    А вроде NULL=0 везде
     
  5. tyug

    tyug New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2008
    Сообщения:
    19
    а вот указатель на 0 (как кстати указано e microsoft) и 0 это разные вещи
     
  6. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    tyug
    http://support.microsoft.com/default.aspx/kb/891805