-
P (16.08.11 20:19) [0]Здравствуйте
Пытаюсь писать фильтр файловой системы, правильно ли будет сделать отмену IRP_MJ_CREATE таким образом? Где то прочитал на rsdn.ruif (условие доступа у файлу)
{
IoCancelFileOpen(DeviceObject, FileObject);
Irp->IoStatus.Status = STATUS_ACCESS_DENIED;
Irp->IoStatus.Information = 0;
return STATUS_SUCCESS;
}
else
{
return IoCallDriver...
} -
Игорь Шевченко © (16.08.11 21:44) [1]А фильтр где стоит и в каком месте код вызывается ? До вызова нижележащего драйвера или после ?
-
P (16.08.11 22:29) [2]
> Игорь Шевченко © (16.08.11 21:44) [1]
> До вызова нижележащего драйвера или после ?
После вызова -
Игорь Шевченко © (16.08.11 23:04) [3]
> После вызова
тогда вроде нормально
A filter driver exists between a higher-level filter driver and a lower-level file system driver.
The filter driver passes an IRP_MJ_CREATE request down the device stack to the file system driver, and the file system driver completes the IRP_MJ_CREATE request with status STATUS_SUCCESS.
Before the filter driver completes the create request, it determines that the file must be closed.
The filter driver uses IoCancelFileOpen to close the file that was opened by the file system driver.
http://msdn.microsoft.com/en-us/library/ff548246(v=vs.85).aspx
вот здесь есть какие-то особенности, если что
http://www.osronline.com/article.cfm?article=219