2.2.7.2.1 Request

The NT_TRANSACT_IOCTL request format is a special case of SMB_COM_NT_TRANSACT (section 2.2.4.62) SMB. Only the NT_TRANSACT_IOCTL request specifics are described here.

  
 NT_Trans_Parameters
   {
   }
  
 NT_Trans_Data
   {
   UCHAR Data[TotalDataCount];
   }
  

SMB_Parameters:

WordCount (1 byte): UCHAR This field MUST be 0x17.

Words (46 bytes): Array of USHORT.

TotalParameterCount (2 bytes): USHORT This field MUST be set to 0x0000.

MaxParameterCount (2 bytes): USHORT This field MUST be set to 0x0000.

ParameterCount (2 bytes): USHORT This field MUST be set to 0x0000.

SetupCount (1 byte): UCHAR This field MUST be 0x04.

Function (2 bytes): USHORT This field MUST be NT_TRANSACT_IOCTL (0x0002).


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Setup

...

NT_Trans_Parameters (variable)

...

NT_Trans_Data (variable)

...

Setup (8 bytes):


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

FunctionCode

FID

IsFsctl

IsFlags

FunctionCode (4 bytes): ULONG The control code of the file system control or device control (FSCTL/IOCTL) method. The values are defined in [MS-FSCC] section 2.3.

FID (2 bytes): USHORT MUST contain a valid FID obtained from a previously successful SMB open command. The FID MUST be for either an I/O device or for a file system control device. The type of FID being supplied is specified by IsFsctl.

IsFsctl (1 byte): BOOLEAN This field is TRUE if the command is a file system control command and the FID is a file system control device. Otherwise, the command is a device control command and FID is an I/O device.

IsFlags (1 byte): BOOLEAN If bit 0 is set, the command is to be applied to a share root handle. The share MUST be a Distributed File System (DFS) type.

NT_Trans_Parameters (variable): (0 bytes): No NT_Trans parameters are sent in this request.

NT_Trans_Data (variable):


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Data (variable)

...

Data (variable): The raw bytes that are passed to the fsctl or ioctl function as the input buffer.