[wdmaudiodev] Re: Need help !!!

  • From: Waldemar Haszlakiewicz <waldemar.haszlakiewicz@xxxxxxxx>
  • To: "Nitin Porwal (HCL Technologies Ltd)" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Sun, 11 Apr 2004 13:02:14 +0200

Here are parts of our logger -> I hope it helps


----------------------------------
        //Create string.
                swprintf( loggerPath, L"\\??\\C:\\glDriver_logger%d.txt", i );

                RtlInitUnicodeString( &fileName, loggerPath );

                InitializeObjectAttributes(
                  &ObjectAttributes,
              &fileName,
                  OBJ_CASE_INSENSITIVE,
              NULL,
                  NULL
                );

                Status = ZwCreateFile(
                  &fileHandle,
                  GENERIC_WRITE,
              &ObjectAttributes,
                  &IoStatusBlock,
              NULL,
                  FILE_ATTRIBUTE_NORMAL,
              0,
                  FILE_CREATE,
              FILE_SYNCHRONOUS_IO_NONALERT,
                  NULL,
              0
                );

                if ( SUCCESS( Status ) )
                {
                //Close opened file and signal that we can log.
                ZwClose( fileHandle );
                        canLog = YES;
                        break;
                }
-------------------------------------------
        //Open logging file.
                RtlInitUnicodeString( &fileName, loggerPath );

                InitializeObjectAttributes(
                  &objectAttributes,
          &fileName,
          OBJ_CASE_INSENSITIVE,
          NULL,
          NULL
                );

                //Direct disk access.
                Status = ZwCreateFile(
                  &fileHandle,
                  FILE_WRITE_DATA | SYNCHRONIZE,
                  &objectAttributes,
                  &ioStatusBlock,
                  NULL,
                  FILE_ATTRIBUTE_NORMAL,
                  FILE_SHARE_READ,
                  FILE_OPEN,
                  FILE_NO_INTERMEDIATE_BUFFERING | FILE_SYNCHRONOUS_IO_NONALERT,
                  NULL,
                  0
                );

                //Extra check.
                if ( fileHandle == NULL )
                {
                        Status = STATUS_UNSUCCESSFUL;
                }

        //Append buffer to disk buffer and save.
                if ( SUCCESS( Status ) )
                {
                //Append string to main buffer.
                        strcpy( pFileBuffer, buffer );

                //Write main buffer to disk.
                        //Direct disk access.
                        ZwWriteFile(
                          fileHandle,
                          NULL,
                          NULL,
                          NULL,
                          &ioStatusBlock,
                          &fileBuffer,
                          FILE_BUFFER_SIZE,
                          &byteOffset,
                          NULL );
        
                        ZwClose(fileHandle);
--------------------------------------------

NPHTL> Hi,

NPHTL> I have written a PCI device driver. I need to create a file from driver.
NPHTL> I tried with ZwCreateFile and ZwWriteFile functions, but it didn't work.
NPHTL> Does anybody have any sample code for this? I used these function -

 

NPHTL> ntStatus = ZwCreateFile(&pDevExt->hLogFile,

 
NPHTL> FILE_APPEND_DATA|GENERIC_WRITE|SYNCHRONIZE,

NPHTL>                                     &objectAttributes,

NPHTL>                                     &IoStatus,

NPHTL>                                     0, 

NPHTL>                                     FILE_ATTRIBUTE_NORMAL,

NPHTL>                                     FILE_SHARE_WRITE,

NPHTL>                                     FILE_OVERWRITE_IF,

NPHTL>                                     FILE_NON_DIRECTORY_FILE |

NPHTL>                                     FILE_SYNCHRONOUS_IO_ALERT,

NPHTL>                                     NULL,     

NPHTL>                                     0

NPHTL>                                     );

 

NPHTL> ZwWriteFile(pDevExt->hLogFile, NULL, NULL,
NPHTL> NULL,&IoStatus,pDevExt->achBuffer,ulLength,NULL,NULL);

 

NPHTL> Is anything wrong with the calls? The file is getting created properly
NPHTL> but writes are failing.

NPHTL> If anybody has any solution, then please revert back to me.

 

NPHTL> Thanks

NPHTL> Nitin


******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

Other related posts: