2.2.4.35.1 Request

 SMB_Parameters
   {
   UCHAR  WordCount;
   Words
     {
     USHORT FID;
     USHORT Category;
     USHORT Function;
     USHORT TotalParameterCount;
     USHORT TotalDataCount;
     USHORT MaxParameterCount;
     USHORT MaxDataCount;
     ULONG  Timeout;
     USHORT Reserved;
     USHORT ParameterCount;
     USHORT ParameterOffset;
     USHORT DataCount;
     USHORT DataOffset;
     }
   }
 SMB_Data
   {
   USHORT ByteCount;
   Bytes
     {
     UCHAR Pad1[];
     UCHAR Parameters[ParameterCount];
     UCHAR Pad2[];
     UCHAR Data[DataCount];
     }
   }
            


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

SMB_Parameters (29 bytes)

...

...

...

SMB_Data (variable)

...

SMB_Parameters (29 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

WordCount

Words (28 bytes)

...

...

...

WordCount (1 byte): This value of this field MUST be set to 0x0E.

Words (28 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

FID

Category

Function

TotalParameterCount

TotalDataCount

MaxParameterCount

MaxDataCount

Timeout

...

Reserved2

ParameterCount

ParameterOffset

DataCount

DataOffset

FID (2 bytes): The FID of the device or file to which the IOCTL is to be sent.

Category (2 bytes): The implementation-dependent device category for the request.

Function (2 bytes): The implementation-dependent device function for the request.

TotalParameterCount (2 bytes): The total number of IOCTL parameter bytes that the client sends to the server in this request. Parameter bytes for an IOCTL are carried within the SMB_Data.Parameters field of the SMB_COM_IOCTL request. This value MUST be the same as ParameterCount.

TotalDataCount (2 bytes): The total number of IOCTL data bytes that the client sends to the server in this request. Data bytes for an IOCTL are carried within the SMB_Data.Data field of the SMB_COM_IOCTL request. This value MUST be the same as DataCount.

MaxParameterCount (2 bytes): The maximum number of SMB_Data.Parameters bytes that the client accepts in the IOCTL response. The server MUST NOT return more than this number of bytes in the SMB_Data.Parameters field of the response.

MaxDataCount (2 bytes): The maximum number of SMB_Data.Data bytes that the client accepts in the IOCTL response. The server MUST NOT return more than this number of bytes in the SMB_Data.Data field.

Timeout (4 bytes): The value of this field MUST be the maximum number of milliseconds that the server SHOULD wait for completion of the transaction before generating a time-out and returning a response to the client. The client SHOULD set this to 0x00000000 to indicate that no time-out is expected. A value of 0x00000000 indicates that the server returns an error if the resource is not immediately available. If the operation does not complete within the specified time, the server aborts the request and sends a failure response.

Reserved2 (2 bytes): Reserved. This field MUST be 0x0000 in the client request. The server MUST ignore the contents of this field.

ParameterCount (2 bytes): The number of IOCTL parameter bytes that the client sends to the server in this request. Parameter bytes for an IOCTL are carried within the SMB_Data.Parameters field of the SMB_COM_IOCTL request. This value MUST be the same as TotalParameterCount.

ParameterOffset (2 bytes): The client SHOULD set the value of this field to 0x0000. The server MUST ignore the value of this field.

DataCount (2 bytes): The total number of IOCTL data bytes that the client sends to the server in this request. Data bytes for an IOCTL are carried within the SMB_Data.Data field of the SMB_COM_IOCTL request. This value MUST be the same as TotalDataCount.

DataOffset (2 bytes): The client SHOULD set the value of this field to 0x0000. The server MUST ignore the value of this field.

SMB_Data (variable):

The SMB_Data section of the SMB_COM_IOCTL Request (section 2.2.4.35.1) contains the parameters and data that are the input to the IOCTL operation on the server.


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

ByteCount

Bytes (variable)

...

ByteCount (2 bytes): The number of bytes in the Bytes array that follows.

Bytes (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

Pad1 (variable)

...

Parameters (variable)

...

Pad2 (variable)

...

Data (variable)

...

Pad1 (variable): An array of padding bytes used to align the next field to a 2-byte or 4-byte boundary.

Parameters (variable): IOCTL parameter bytes. The contents are implementation-dependent.

Pad2 (variable): An array of padding bytes, used to align the next field to a 2-byte or 4-byte boundary.

Data (variable): Transaction data bytes. The contents are implementation-dependent.