denying file access

I want to give certain files in the hard disk read only access to processes.

Only one process previously identified can access with file with write
permissions (to modify it).

The code goes like…

if(pIrpStack->MajorFunction==IRP_MJ_CREATE){

ULONG ulCreateDisposition = (pIrpStack->Parameters.Create.Options >>
24) & 0xFF;

ULONG ulCreateOptions=pIrpStack->Parameters.Create.Options>>24;

int iIndex=-1; //Set it to an impossible value, for eror checking

// This is for the policy file procetion

if((g_PolicyExeFile)&&(g_PolicyFile)&& PidListNode.pProcName &&

(_wcsnicmp(PidListNode.pProcName
,g_PolicyExeFile,(wcslen(g_PolicyExeFile)>=wcslen(PidListNode.pProcName
)?wcslen(PidListNode.pProcName):wcslen(g_PolicyExeFile)))!=0)&&pFileName&&
(wcslen(pFileName)>=wcslen(g_PolicyFile))&&

(_wcsnicmp(pFileName,g_PolicyFile,wcslen(g_PolicyFile))==0)){

// any Executable other than the Policy EXE should be denied access to the
file if they try to open it fro modification

if((pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&FILE_WRITE_DATA)
||

(pIrpStack->Parameters.Create.SecurityContext-

DesiredAccess&FILE_APPEND_DATA)||

(pIrpStack->Parameters.Create.SecurityContext-

DesiredAccess&FILE_WRITE_ATTRIBUTES)||

(pIrpStack-> Parameters.Create.SecurityContext-

DesiredAccess&FILE_WRITE_EA)||

(pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&DELETE)||

(pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&WRITE_DAC)||

(pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&WRITE_OWNER)){

IoCompleteRequest(Irp,IO_NO_INCREMENT);

return STATUS_ACCESS_DENIED;

}

}

}
//if(pIrpStack->MajorFunction==IRP_MJ_CREATE)

This code works fine in NTFS, and even delete is checked.

But on Windows 2K Pro installed on FAT32 drives, deleting the file through
explorer etc generates Bug Check 0x23: FAT_FILE_SYSTEM crash!!!

Can some one help me with this.

  • amitr0

You return STATUS_ACCESS_DENIED, but you don’t set
Irp->IoStatus.Status to the same value. Do it before
IoCompleteRequest.

Regards,
Razvan

— amitr0 wrote:

> I want to give certain files in the hard disk read
> only access to processes.
>
> Only one process previously identified can access
> with file with write
> permissions (to modify it).
>
> The code goes like…
>
>
> if(pIrpStack->MajorFunction==IRP_MJ_CREATE){
>
> ULONG ulCreateDisposition =
> (pIrpStack->Parameters.Create.Options >>
> 24) & 0xFF;
>
> ULONG
>
ulCreateOptions=pIrpStack->Parameters.Create.Options>>24;
>
> int iIndex=-1; //Set it to an impossible
> value, for eror checking
>
> // This is for the policy file procetion
>
> if((g_PolicyExeFile)&&(g_PolicyFile)&&
> PidListNode.pProcName &&
>
> (_wcsnicmp(PidListNode.pProcName
>
,g_PolicyExeFile,(wcslen(g_PolicyExeFile)>=wcslen(PidListNode.pProcName
>
)?wcslen(PidListNode.pProcName):wcslen(g_PolicyExeFile)))!=0)&&pFileName&&
> (wcslen(pFileName)>=wcslen(g_PolicyFile))&&
>
>
(_wcsnicmp(pFileName,g_PolicyFile,wcslen(g_PolicyFile))==0)){
>
> // any Executable other than the Policy EXE should
> be denied access to the
> file if they try to open it fro modification
>
>
if((pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&FILE_WRITE_DATA)
> ||
>
> (pIrpStack->Parameters.Create.SecurityContext-
> >DesiredAccess&FILE_APPEND_DATA)||
>
> (pIrpStack->Parameters.Create.SecurityContext-
> >DesiredAccess&FILE_WRITE_ATTRIBUTES)||
>
> (pIrpStack-> Parameters.Create.SecurityContext-
> >DesiredAccess&FILE_WRITE_EA)||
>
>
(pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&DELETE)||
>
>
(pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&WRITE_DAC)||
>
>
(pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&WRITE_OWNER)){
>
> IoCompleteRequest(Irp,IO_NO_INCREMENT);
>
> return STATUS_ACCESS_DENIED;
>
> }
>
> }
>
> }
> //if(pIrpStack->MajorFunction==IRP_MJ_CREATE)
>
> This code works fine in NTFS, and even delete is
> checked.
>
> But on Windows 2K Pro installed on FAT32 drives,
> deleting the file through
> explorer etc generates Bug Check 0x23:
> FAT_FILE_SYSTEM crash!!!
>
> Can some one help me with this.
>
>
> –
>
> - amitr0
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
xxxxx@lists.osr.com

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

this is dont do, because I am not supposed to tamper the IRP IoStatus value.

Should I do it?

On 8/28/06, Razvan Hobeanu wrote:
>
> You return STATUS_ACCESS_DENIED, but you don’t set
> Irp->IoStatus.Status to the same value. Do it before
> IoCompleteRequest.
>
> Regards,
> Razvan
>
> — amitr0 wrote:
>
> > I want to give certain files in the hard disk read
> > only access to processes.
> >
> > Only one process previously identified can access
> > with file with write
> > permissions (to modify it).
> >
> > The code goes like…
> >
> >
> > if(pIrpStack->MajorFunction==IRP_MJ_CREATE){
> >
> > ULONG ulCreateDisposition =
> > (pIrpStack->Parameters.Create.Options >>
> > 24) & 0xFF;
> >
> > ULONG
> >
> ulCreateOptions=pIrpStack->Parameters.Create.Options>>24;
> >
> > int iIndex=-1; //Set it to an impossible
> > value, for eror checking
> >
> > // This is for the policy file procetion
> >
> > if((g_PolicyExeFile)&&(g_PolicyFile)&&
> > PidListNode.pProcName &&
> >
> > (_wcsnicmp(PidListNode.pProcName
> >
> ,g_PolicyExeFile,(wcslen(g_PolicyExeFile)>=wcslen(PidListNode.pProcName
> >
> )?wcslen(PidListNode.pProcName):wcslen(g_PolicyExeFile)))!=0)&&pFileName&&
> > (wcslen(pFileName)>=wcslen(g_PolicyFile))&&
> >
> >
> (_wcsnicmp(pFileName,g_PolicyFile,wcslen(g_PolicyFile))==0)){
> >
> > // any Executable other than the Policy EXE should
> > be denied access to the
> > file if they try to open it fro modification
> >
> >
> if((pIrpStack->Parameters.Create.SecurityContext-
> >DesiredAccess&FILE_WRITE_DATA)
> > ||
> >
> > (pIrpStack->Parameters.Create.SecurityContext-
> > >DesiredAccess&FILE_APPEND_DATA)||
> >
> > (pIrpStack->Parameters.Create.SecurityContext-
> > >DesiredAccess&FILE_WRITE_ATTRIBUTES)||
> >
> > (pIrpStack-> Parameters.Create.SecurityContext-
> > >DesiredAccess&FILE_WRITE_EA)||
> >
> >
> (pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&DELETE)||
> >
> >
> (pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&WRITE_DAC)||
> >
> >
> (pIrpStack->Parameters.Create.SecurityContext-
> >DesiredAccess&WRITE_OWNER)){
> >
> > IoCompleteRequest(Irp,IO_NO_INCREMENT);
> >
> > return STATUS_ACCESS_DENIED;
> >
> > }
> >
> > }
> >
> > }
> > //if(pIrpStack->MajorFunction==IRP_MJ_CREATE)
> >
> > This code works fine in NTFS, and even delete is
> > checked.
> >
> > But on Windows 2K Pro installed on FAT32 drives,
> > deleting the file through
> > explorer etc generates Bug Check 0x23:
> > FAT_FILE_SYSTEM crash!!!
> >
> > Can some one help me with this.
> >
> >
> > –
> >
> > - amitr0
> >
> > —
> > Questions? First check the IFS FAQ at
> > https://www.osronline.com/article.cfm?id=17
> >
> > You are currently subscribed to ntfsd as:
> > xxxxx@yahoo.com
> > To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@gmail.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>



- amitr0

>> this is dont do, because I am not supposed to tamper the IRP IoStatus value.

Should I do it?

If you are completing the IRP, absolutely :slight_smile:
BTW, if you will run your driver with Driver Verifier enabled,
he will complain about it.

L.

----- Original Message -----
From: amitr0
To: Windows File Systems Devs Interest List
Sent: Monday, August 28, 2006 10:49 AM
Subject: Re: [ntfsd] denying file access

this is dont do, because I am not supposed to tamper the IRP IoStatus value.

Should I do it?

On 8/28/06, Razvan Hobeanu wrote:
You return STATUS_ACCESS_DENIED, but you don’t set
Irp->IoStatus.Status to the same value. Do it before
IoCompleteRequest.

Regards,
Razvan

— amitr0 wrote:

> I want to give certain files in the hard disk read
> only access to processes.
>
> Only one process previously identified can access
> with file with write
> permissions (to modify it).
>
> The code goes like…
>
>
> if(pIrpStack->MajorFunction==IRP_MJ_CREATE){
>
> ULONG ulCreateDisposition =
> (pIrpStack->Parameters.Create.Options >>
> 24) & 0xFF;
>
> ULONG
>
ulCreateOptions=pIrpStack->Parameters.Create.Options >>24;
>
> int iIndex=-1; //Set it to an impossible
> value, for eror checking
>
> // This is for the policy file procetion
>
> if((g_PolicyExeFile)&&(g_PolicyFile)&&
> PidListNode.pProcName &&
>
> (_wcsnicmp(PidListNode.pProcName
>
,g_PolicyExeFile,(wcslen(g_PolicyExeFile)>=wcslen(PidListNode.pProcName
>
)?wcslen(PidListNode.pProcName ):wcslen(g_PolicyExeFile)))!=0)&&pFileName&&
> (wcslen(pFileName)>=wcslen(g_PolicyFile))&&
>
>
(_wcsnicmp(pFileName,g_PolicyFile,wcslen(g_PolicyFile))==0)){
>
> // any Executable other than the Policy EXE should
> be denied access to the
> file if they try to open it fro modification
>
>
if((pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&FILE_WRITE_DATA)
> ||
>
> (pIrpStack-> Parameters.Create.SecurityContext-
> >DesiredAccess&FILE_APPEND_DATA)||
>
> (pIrpStack->Parameters.Create.SecurityContext-
> >DesiredAccess&FILE_WRITE_ATTRIBUTES)||
>
> (pIrpStack-> Parameters.Create.SecurityContext-
> >DesiredAccess&FILE_WRITE_EA)||
>
>
(pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&DELETE)||
>
>
(pIrpStack->Parameters.Create.SecurityContext- >DesiredAccess&WRITE_DAC)||
>
>
(pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&WRITE_OWNER)){
>
> IoCompleteRequest(Irp,IO_NO_INCREMENT);
>
> return STATUS_ACCESS_DENIED;
>
> }
>
> }
>
> }
> //if(pIrpStack->MajorFunction==IRP_MJ_CREATE)
>
> This code works fine in NTFS, and even delete is
> checked.
>
> But on Windows 2K Pro installed on FAT32 drives,
> deleting the file through
> explorer etc generates Bug Check 0x23:
> FAT_FILE_SYSTEM crash!!!
>
> Can some one help me with this.
>
>
> –
>
> - amitr0
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
xxxxx@lists.osr.com

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com


Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@gmail.com
To unsubscribe send a blank email to xxxxx@lists.osr.com



- amitr0 — Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17 You are currently subscribed to ntfsd as: xxxxx@volny.cz To unsubscribe send a blank email to xxxxx@lists.osr.com

Ladik, Razvan,

thanks for the clue. It has solved the problem on Win2K Pro.

On 8/28/06, Ladislav Zezula wrote:
>
> >> this is dont do, because I am not supposed to tamper the IRP IoStatus
> value.
> > Should I do it?
>
> If you are completing the IRP, absolutely :slight_smile:
> BTW, if you will run your driver with Driver Verifier enabled,
> he will complain about it.
>
> L.
>
>
> ----- Original Message -----
> From: amitr0
> To: Windows File Systems Devs Interest List
> Sent: Monday, August 28, 2006 10:49 AM
> Subject: Re: [ntfsd] denying file access
>
>
> this is dont do, because I am not supposed to tamper the IRP IoStatus
> value.
>
> Should I do it?
>
>
>
>
> On 8/28/06, Razvan Hobeanu wrote:
> >
> > You return STATUS_ACCESS_DENIED, but you don’t set
> > Irp->IoStatus.Status to the same value. Do it before
> > IoCompleteRequest.
> >
> > Regards,
> > Razvan
> >
> > — amitr0 wrote:
> >
> > > I want to give certain files in the hard disk read
> > > only access to processes.
> > >
> > > Only one process previously identified can access
> > > with file with write
> > > permissions (to modify it).
> > >
> > > The code goes like…
> > >
> > >
> > > if(pIrpStack->MajorFunction==IRP_MJ_CREATE){
> > >
> > > ULONG ulCreateDisposition =
> > > (pIrpStack->Parameters.Create.Options >>
> > > 24) & 0xFF;
> > >
> > > ULONG
> > >
> > ulCreateOptions=pIrpStack->Parameters.Create.Options >>24;
> > >
> > > int iIndex=-1; //Set it to an impossible
> > > value, for eror checking
> > >
> > > // This is for the policy file procetion
> > >
> > > if((g_PolicyExeFile)&&(g_PolicyFile)&&
> > > PidListNode.pProcName &&
> > >
> > > (_wcsnicmp(PidListNode.pProcName
> > >
> > ,g_PolicyExeFile,(wcslen(g_PolicyExeFile)>=wcslen(PidListNode.pProcName
> > >
> > )?wcslen(PidListNode.pProcName):wcslen(g_PolicyExeFile)))!=0)&&pFileName&&
> > > (wcslen(pFileName)>=wcslen(g_PolicyFile))&&
> > >
> > >
> > (_wcsnicmp(pFileName,g_PolicyFile,wcslen(g_PolicyFile))==0)){
> > >
> > > // any Executable other than the Policy EXE should
> > > be denied access to the
> > > file if they try to open it fro modification
> > >
> > >
> > if((pIrpStack->Parameters.Create.SecurityContext-
> > >DesiredAccess&FILE_WRITE_DATA)
> > > ||
> > >
> > > (pIrpStack-> Parameters.Create.SecurityContext-
> > > >DesiredAccess&FILE_APPEND_DATA)||
> > >
> > > (pIrpStack->Parameters.Create.SecurityContext-
> > > >DesiredAccess&FILE_WRITE_ATTRIBUTES)||
> > >
> > > (pIrpStack-> Parameters.Create.SecurityContext-
> > > >DesiredAccess&FILE_WRITE_EA)||
> > >
> > >
> > (pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&DELETE)||
> > >
> > >
> > (pIrpStack->Parameters.Create.SecurityContext-
> > >DesiredAccess&WRITE_DAC)||
> > >
> > >
> > (pIrpStack->Parameters.Create.SecurityContext-
> > >DesiredAccess&WRITE_OWNER)){
> > >
> > > IoCompleteRequest(Irp,IO_NO_INCREMENT);
> > >
> > > return STATUS_ACCESS_DENIED;
> > >
> > > }
> > >
> > > }
> > >
> > > }
> > > //if(pIrpStack->MajorFunction==IRP_MJ_CREATE)
> > >
> > > This code works fine in NTFS, and even delete is
> > > checked.
> > >
> > > But on Windows 2K Pro installed on FAT32 drives,
> > > deleting the file through
> > > explorer etc generates Bug Check 0x23:
> > > FAT_FILE_SYSTEM crash!!!
> > >
> > > Can some one help me with this.
> > >
> > >
> > > –
> > >
> > > - amitr0
> > >
> > > —
> > > Questions? First check the IFS FAQ at
> > > https://www.osronline.com/article.cfm?id=17
> > >
> > > You are currently subscribed to ntfsd as:
> > > xxxxx@yahoo.com
> > > To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam? Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> >
> > —
> > Questions? First check the IFS FAQ at
> > https://www.osronline.com/article.cfm?id=17
> >
> > You are currently subscribed to ntfsd as: xxxxx@gmail.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
>
>
>
> –
>
> - amitr0 — Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17 You are currently subscribed
> to ntfsd as: xxxxx@volny.cz To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
>
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>



- amitr0

If you don’t use verifier, here is a Technet video that demonstrates why
you should. It’s long, and most the info you
already know, but it does make a point.
*
*Technet Webcast: Windows Hang and Crash Dump Analysis
http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&Params=~CMTYDataSvcParams^~arg+Name%3D"ID"+Value%3D"1032298076"%2F^~arg+Name%3D"ProviderID"+Value%3D"A6B43178-497C-4225-BA42-DF595171F04C"%2F^~arg+Name%3D"lang"+Value%3D"en"%2F^~arg+Name%3D"cr"+Value%3D"US"%2F^~sParams^~%2FsParams^~%2FCMTYDataSvcParams^

m.

Ladislav Zezula wrote:

>> this is dont do, because I am not supposed to tamper the IRP
IoStatus value.
> Should I do it?

If you are completing the IRP, absolutely :slight_smile:
BTW, if you will run your driver with Driver Verifier enabled,
he will complain about it.

L.

----- Original Message -----
*From:* amitr0 mailto:xxxxx
> To: Windows File Systems Devs Interest List
> mailto:xxxxx
> Sent: Monday, August 28, 2006 10:49 AM
> Subject: Re: [ntfsd] denying file access
>
> this is dont do, because I am not supposed to tamper the IRP
> IoStatus value.
>
> Should I do it?
>
>
>
>
> On 8/28/06, Razvan Hobeanu > mailto:xxxxx> wrote:
>
> You return STATUS_ACCESS_DENIED, but you don’t set
> Irp->IoStatus.Status to the same value. Do it before
> IoCompleteRequest.
>
> Regards,
> Razvan
>
> — amitr0 > mailto:xxxxx> wrote:
>
> > I want to give certain files in the hard disk read
> > only access to processes.
> >
> > Only one process previously identified can access
> > with file with write
> > permissions (to modify it).
> >
> > The code goes like…
> >
> >
> > if(pIrpStack->MajorFunction==IRP_MJ_CREATE){
> >
> > ULONG ulCreateDisposition =
> > (pIrpStack->Parameters.Create.Options >>
> > 24) & 0xFF;
> >
> > ULONG
> >
> ulCreateOptions=pIrpStack->Parameters.Create.Options >>24;
> >
> > int iIndex=-1; //Set it to an impossible
> > value, for eror checking
> >
> > // This is for the policy file procetion
> >
> > if((g_PolicyExeFile)&&(g_PolicyFile)&&
> > PidListNode.pProcName &&
> >
> > (_wcsnicmp(PidListNode.pProcName
> >
> ,g_PolicyExeFile,(wcslen(g_PolicyExeFile)>=wcslen(PidListNode.pProcName
> >
> )?wcslen(PidListNode.pProcName
> ):wcslen(g_PolicyExeFile)))!=0)&&pFileName&&
> > (wcslen(pFileName)>=wcslen(g_PolicyFile))&&
> >
> >
> (_wcsnicmp(pFileName,g_PolicyFile,wcslen(g_PolicyFile))==0)){
> >
> > // any Executable other than the Policy EXE should
> > be denied access to the
> > file if they try to open it fro modification
> >
> >
> if((pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&FILE_WRITE_DATA)
> > ||
> >
> > (pIrpStack-> Parameters.Create.SecurityContext-
> > >DesiredAccess&FILE_APPEND_DATA)||
> >
> > (pIrpStack->Parameters.Create.SecurityContext-
> > >DesiredAccess&FILE_WRITE_ATTRIBUTES)||
> >
> > (pIrpStack-> Parameters.Create.SecurityContext-
> > >DesiredAccess&FILE_WRITE_EA)||
> >
> >
> (pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&DELETE)||
> >
> >
> (pIrpStack->Parameters.Create.SecurityContext-
> >DesiredAccess&WRITE_DAC)||
> >
> >
> (pIrpStack->Parameters.Create.SecurityContext->DesiredAccess&WRITE_OWNER)){
> >
> > IoCompleteRequest(Irp,IO_NO_INCREMENT);
> >
> > return STATUS_ACCESS_DENIED;
> >
> > }
> >
> > }
> >
> > }
> > //if(pIrpStack->MajorFunction==IRP_MJ_CREATE)
> >
> > This code works fine in NTFS, and even delete is
> > checked.
> >
> > But on Windows 2K Pro installed on FAT32 drives,
> > deleting the file through
> > explorer etc generates Bug Check 0x23:
> > FAT_FILE_SYSTEM crash!!!
> >
> > Can some one help me with this.
> >
> >
> > –
> >
> > - amitr0
> >
> > —
> > Questions? First check the IFS FAQ at
> > https://www.osronline.com/article.cfm?id=17
> >
> > You are currently subscribed to ntfsd as:
> > xxxxx@yahoo.com mailto:xxxxx
> > To unsubscribe send a blank email to
> xxxxx@lists.osr.com
> mailto:xxxxx
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@gmail.com
> mailto:xxxxx
> To unsubscribe send a blank email to
> xxxxx@lists.osr.com
> mailto:xxxxx
>
>
>
>
> –
>
> - amitr0 — Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17 You are currently
> subscribed to ntfsd as: xxxxx@volny.cz To unsubscribe send a
> blank email to xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: unknown lmsubst tag
> argument: ‘’
> To unsubscribe send a blank email to xxxxx@lists.osr.com</mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx>