mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
r22492: Add objectid code.
Jeremy. (This used to be commit d3df922038032b65f52e1e0ac1f2dd53a6933fb7)
This commit is contained in:
parent
7d859f04f2
commit
4742fa9366
@ -47,7 +47,7 @@
|
||||
#define FSCTL_SET_REPARSE_POINT 0x000900A4
|
||||
#define FSCTL_GET_REPARSE_POINT 0x000900A8
|
||||
#define FSCTL_DELETE_REPARSE_POINT 0x000900AC
|
||||
#define FSCTL_0x000900C0 0x000900C0
|
||||
#define FSCTL_CREATE_OR_GET_OBJECT_ID 0x000900C0
|
||||
#define FSCTL_SET_SPARSE 0x000900C4
|
||||
#define FSCTL_SET_ZERO_DATA 0x000900C8
|
||||
#define FSCTL_SET_ENCRYPTION 0x000900D7
|
||||
|
@ -2285,15 +2285,30 @@ static int call_nt_transact_ioctl(connection_struct *conn, char *inbuf, char *ou
|
||||
0);
|
||||
return -1;
|
||||
|
||||
case FSCTL_0x000900C0:
|
||||
/* pretend this succeeded - don't know what this really is
|
||||
but works ok like this --metze
|
||||
case FSCTL_CREATE_OR_GET_OBJECT_ID:
|
||||
{
|
||||
unsigned char objid[16];
|
||||
|
||||
/* This should return the object-id on this file.
|
||||
* I think I'll make this be the inode+dev. JRA.
|
||||
*/
|
||||
|
||||
DEBUG(10,("FSCTL_0x000900C0: called on FID[0x%04X](but not implemented)\n",fidnum));
|
||||
send_nt_replies(inbuf, outbuf, bufsize, NT_STATUS_OK, NULL, 0, NULL,
|
||||
0);
|
||||
DEBUG(10,("FSCTL_CREATE_OR_GET_OBJECT_ID: called on FID[0x%04X]\n",fidnum));
|
||||
|
||||
data_count = 64;
|
||||
pdata = nttrans_realloc(ppdata, data_count);
|
||||
if (pdata == NULL) {
|
||||
return ERROR_NT(NT_STATUS_NO_MEMORY);
|
||||
}
|
||||
SINO_T_VAL(pdata,0,fsp->inode);
|
||||
SDEV_T_VAL(pdata,8,fsp->dev);
|
||||
memcpy(pdata+16,create_volume_objectid(conn,objid),16);
|
||||
SINO_T_VAL(pdata,32,fsp->inode);
|
||||
SDEV_T_VAL(pdata,40,fsp->dev);
|
||||
send_nt_replies(inbuf, outbuf, bufsize, NT_STATUS_OK, NULL, 0, pdata, data_count);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
case FSCTL_GET_REPARSE_POINT:
|
||||
/* pretend this fail - my winXP does it like this
|
||||
@ -2301,8 +2316,7 @@ static int call_nt_transact_ioctl(connection_struct *conn, char *inbuf, char *ou
|
||||
*/
|
||||
|
||||
DEBUG(10,("FSCTL_GET_REPARSE_POINT: called on FID[0x%04X](but not implemented)\n",fidnum));
|
||||
send_nt_replies(inbuf, outbuf, bufsize, NT_STATUS_NOT_A_REPARSE_POINT,
|
||||
NULL, 0, NULL, 0);
|
||||
return ERROR_NT(NT_STATUS_NOT_A_REPARSE_POINT);
|
||||
return -1;
|
||||
|
||||
case FSCTL_SET_REPARSE_POINT:
|
||||
@ -2311,8 +2325,7 @@ static int call_nt_transact_ioctl(connection_struct *conn, char *inbuf, char *ou
|
||||
*/
|
||||
|
||||
DEBUG(10,("FSCTL_SET_REPARSE_POINT: called on FID[0x%04X](but not implemented)\n",fidnum));
|
||||
send_nt_replies(inbuf, outbuf, bufsize, NT_STATUS_NOT_A_REPARSE_POINT,
|
||||
NULL, 0, NULL, 0);
|
||||
return ERROR_NT(NT_STATUS_NOT_A_REPARSE_POINT);
|
||||
return -1;
|
||||
|
||||
case FSCTL_GET_SHADOW_COPY_DATA: /* don't know if this name is right...*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user