Я пытаюсь создать устаревший драйвер фильтра для Windows, чтобы заблокировать «создание файла и папки» на внешних устройствах хранения.
Я пробовал со следующим кодом
if( lDeviceType==cwUSBDRIVE || lDeviceType==cwEXTERNALHDD)
{
if(irpSp->MajorFunction==IRP_MJ_CREATE)
{
if((irpSp->Parameters.Create.Options)&FILE_DIRECTORY_FILE)
{
Irp->IoStatus.Status = STATUS_ACCESS_DENIED;//Deny Access
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_ACCESS_DENIED;
}
else if((irpSp->Parameters.Create.Options)&FILE_NON_DIRECTORY_FILE)
{
Irp->IoStatus.Status = STATUS_ACCESS_DENIED;//Deny Access
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_ACCESS_DENIED;
}
}
}
при работе с кодом блокирует создание файла/папки. Но он также блокирует копирование файлов с устройства и операции открытия файлов.
Мне нужно заблокировать создание файла\папки и разрешить копирование с устройства и открытие файлов.
CreateDisposition
:CreateDisposition = IrpSp->Parameters.Create.Options >> 24;
- еслиFILE_OPEN
- разрешить, иначе отключить - person RbMm   schedule 26.07.2018CreateDisposition
это точно параметр изIoCreateFile
- person RbMm   schedule 26.07.2018