[PATCH 5/5] s4: add SMB2_FSCTL opcodes

David Disseldorp ddiss at suse.de
Wed Sep 28 08:42:49 MDT 2011


---
 source4/libcli/raw/interfaces.h |   14 ++++++++++++++
 source4/torture/smb2/ioctl.c    |    6 +++---
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/source4/libcli/raw/interfaces.h b/source4/libcli/raw/interfaces.h
index 13586c3..7f42926 100644
--- a/source4/libcli/raw/interfaces.h
+++ b/source4/libcli/raw/interfaces.h
@@ -2191,6 +2191,20 @@ enum smb_ioctl_level {
 	RAW_IOCTL_SMB2_NO_HANDLE
 };
 
+/* 2.2.31 SMB2 IOCTL Request */
+#define SMB2_IOCTL_FLAG_IS_FSCTL		0x00000001
+
+#define SMB2_FSCTL_DFS_GET_REFERRALS		0x00060194
+#define SMB2_FSCTL_PIPE_PEEK			0x0011400C
+#define SMB2_FSCTL_PIPE_WAIT			0x00110018
+#define SMB2_FSCTL_PIPE_TRANSCEIVE		0x0011C017
+#define SMB2_FSCTL_SRV_COPYCHUNK		0x001440F2
+#define SMB2_FSCTL_SRV_ENUM_SNAPS		0x00144064
+#define SMB2_FSCTL_SRV_REQUEST_RESUME_KEY	0x00140078
+#define SMB2_FSCTL_SRV_READ_HASH		0x001441bb
+#define SMB2_FSCTL_SRV_COPYCHUNK_WRITE		0x001480F2
+#define SMB2_FSCTL_LMR_REQ_RESILIENCY		0x001401D4
+
 /*
   union for ioctl() backend
 */
diff --git a/source4/torture/smb2/ioctl.c b/source4/torture/smb2/ioctl.c
index bc8a96a..f96893a 100644
--- a/source4/torture/smb2/ioctl.c
+++ b/source4/torture/smb2/ioctl.c
@@ -58,13 +58,13 @@ static bool test_ioctl_get_shadow_copy(struct torture_context *torture,
 	ZERO_STRUCT(ioctl);
 	ioctl.smb2.level = RAW_IOCTL_SMB2;
 	ioctl.smb2.in.file.handle = h;
-	ioctl.smb2.in.function = 0x144064;	/* FSCTL_GET_SHADOW_COPY_DATA 0x144064 */
+	ioctl.smb2.in.function = SMB2_FSCTL_SRV_ENUM_SNAPS;
 	ioctl.smb2.in.max_response_size = 16;
-	ioctl.smb2.in.flags = 1;		/* Is FSCTL */
+	ioctl.smb2.in.flags = SMB2_IOCTL_FLAG_IS_FSCTL;
 
 	status = smb2_ioctl(tree, tmp_ctx, &ioctl.smb2);
 	if (!NT_STATUS_IS_OK(status)) {
-		printf("FSCTL_GET_SHADOW_COPY_DATA failed\n");
+		printf("SMB2_FSCTL_SRV_ENUM_SNAPS failed\n");
 		return false;
 	}
 
-- 
1.7.1



More information about the samba-technical mailing list