Hi
The code is as follows
Opening the file
NTSTATUS status;
OBJECT_ATTRIBUTES ObjectAttributes;
FILE_STANDARD_INFORMATION StandardInfo;
InitializeObjectAttributes ( &ObjectAttributes,
unicodeName,
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
NULL,
NULL );
status = ZwCreateFile( &fileHandle,
FILE_WRITE_DATA,
&ObjectAttributes,
&m_iosbCreateStatus,
(PLARGE_INTEGER)&allocationSize,
FILE_ATTRIBUTE_NORMAL,
0,
FILE_CREATE,
FILE_NO_INTERMEDIATE_BUFFERING,
NULL, // eabuffer
0 ); // ealength
if (NT_SUCCESS(status)) {
status = ObReferenceObjectByHandle(
fileHandle,
0,
*IoFileObjectType,
KernelMode,
(PVOID *) &fileObject,
NULL);
osDevice = IoGetRelatedDeviceObject(fileObject);
// bugbug error processing if any of these fails
} else {
fileHandle = 0;
fileObject = NULL;
osDevice = NULL;
}
Then I am writing using that file and then closing the filehandle.
Then later I want to delete it. So, I am opening that file but it is failing with STATUS_SHARING_VIOLATION. The Code is as follows
Status = File.Open(FileName,
DELETE,
FILE_OPEN,
FILE_SYNCHRONOUS_IO_ALERT,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
0);
NTSTATUS status;
OBJECT_ATTRIBUTES ObjectAttributes;
FILE_STANDARD_INFORMATION StandardInfo;
InitializeObjectAttributes ( &ObjectAttributes,
unicodeName,
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
NULL,
NULL );
status = ZwCreateFile( &fileHandle,
DELETE,
&ObjectAttributes,
&m_iosbCreateStatus,
(PLARGE_INTEGER)&allocationSize,
FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
FILE_OPEN,
FILE_NO_INTERMEDIATE_BUFFERING,
NULL, // eabuffer
0 ); // ealength
Chat on a cool, new interface. No download required. Go to http://in.messenger.yahoo.com/webmessengerpromo.php