IoCheckShareAccess
里面总结的意思就是:
1.打开文件时候希望得到权限X1,那么只要之前有人打开过这个文件时没指定share x1权限就失败
2.打开文件时候,如果前面有人用Y1打开过,那么就一定要指定share y1权限,意思就是share这个权限是多多益善!!
ocount = ShareAccess->OpenCount;
if ( (FileObject->ReadAccess && (ShareAccess->SharedRead < ocount))
||
(FileObject->WriteAccess && (ShareAccess->SharedWrite < ocount))
||
(FileObject->DeleteAccess && (ShareAccess->SharedDelete < ocount))
||
((ShareAccess->Readers != 0) && !FileObject->SharedRead)
||
((ShareAccess->Writers != 0) && !FileObject->SharedWrite)
||
((ShareAccess->Deleters != 0) && !FileObject->SharedDelete)
) {
//
// The check failed. Simply return to the caller indicating that the
// current open cannot access the file.
//
return STATUS_SHARING_VIOLATION;

浙公网安备 33010602011771号