/// <summary> /// send SMBD data transfer message, for test case to control the transfer /// mannually /// </summary> /// <param name="creditsRequested">The total number of Send Credits requested /// of the receiver, including any Send Credits already granted. /// </param> /// <param name="creditsGranted">The incremental number of Send Credits /// granted by the sender. /// </param> /// <param name="flags">The flags indicating how the operation is to be processed. /// This field MUST be constructed by using any or none of the following values: /// SMB_DIRECT_RESPONSE_REQUESTED. The Flags field MUST be set to zero if no flag /// values are specified. /// </param> /// <param name="reserved">The sender SHOULD set this field to 0 and the receiver /// MUST ignore it on receipt. /// </param> /// <param name="remainingDataLength">The amount of data, in bytes, remaining in a /// sequence of fragmented messages. If this value is 0x00000000, this message is /// the final message in the sequence. /// </param> /// <param name="dataOffset">The offset, in bytes, from the beginning of the SMBDirect /// header to the first byte of the message’s data payload. If no data payload /// is associated with this message, this value MUST be 0. This offset MUST /// be 8-byte aligned from the beginning of the message. /// </param> /// <param name="dataLength">The length, in bytes, of the message’s data payload. /// If no data payload is associated with this message, this value MUST be 0. /// </param> /// <param name="padding">Additional bytes for alignment</param> /// <param name="buffer"></param> /// <returns>A buffer that contains the data payload as defined by /// the DataOffset and DataLength fields.</returns> public NtStatus SendDataTransferMessage( ushort creditsRequested, ushort creditsGranted, SmbdDataTransfer_Flags flags, ushort reserved, uint remainingDataLength, uint dataOffset, uint dataLength, byte[] padding, byte[] buffer) { SmbdDataTransferMessage smbdDataTransfer = new SmbdDataTransferMessage(); smbdDataTransfer.CreditsRequested = creditsRequested; smbdDataTransfer.CreditsGranted = creditsGranted; smbdDataTransfer.Flags = flags; smbdDataTransfer.Reserved = reserved; smbdDataTransfer.RemainingDataLength = remainingDataLength; smbdDataTransfer.DataOffset = dataOffset; smbdDataTransfer.DataLength = dataLength; smbdDataTransfer.Padding = padding; smbdDataTransfer.Buffer = buffer; return(SendDataTransferMessage(smbdDataTransfer)); }
public NtStatus SmbdSendDataTransferMessage( ushort creditsRequested, ushort creditsGranted, SmbdDataTransfer_Flags flags, ushort reserved, uint remainingDataLength, uint dataOffset, uint dataLength, byte[] padding, byte[] buffer ) { return(this.smbdClient.SendDataTransferMessage( creditsRequested, creditsGranted, flags, reserved, remainingDataLength, dataOffset, dataLength, padding, buffer )); }
public NtStatus SmbdSendDataTransferMessage( ushort creditsRequested, ushort creditsGranted, SmbdDataTransfer_Flags flags, uint remainingDataLength, uint dataOffset, uint dataLength, byte[] buffer ) { uint paddingLength = dataOffset; if (paddingLength < SmbdDataTransferMessage.MINIMUM_SIZE) { paddingLength = 0; } else { paddingLength -= (uint)SmbdDataTransferMessage.MINIMUM_SIZE; } byte[] padding = new byte[paddingLength]; for (int i = 0; i < padding.Length; ++i) { padding[i] = 0; } return SmbdSendDataTransferMessage( creditsRequested, creditsGranted, flags, 0, remainingDataLength, dataOffset, dataLength, padding, buffer ); }
/// <summary> /// send SMBD data transfer message, for test case to control the transfer /// mannually /// </summary> /// <param name="creditsRequested">The total number of Send Credits requested /// of the receiver, including any Send Credits already granted. /// </param> /// <param name="creditsGranted">The incremental number of Send Credits /// granted by the sender. /// </param> /// <param name="flags">The flags indicating how the operation is to be processed. /// This field MUST be constructed by using any or none of the following values: /// SMB_DIRECT_RESPONSE_REQUESTED. The Flags field MUST be set to zero if no flag /// values are specified. /// </param> /// <param name="reserved">The sender SHOULD set this field to 0 and the receiver /// MUST ignore it on receipt. /// </param> /// <param name="remainingDataLength">The amount of data, in bytes, remaining in a /// sequence of fragmented messages. If this value is 0x00000000, this message is /// the final message in the sequence. /// </param> /// <param name="dataOffset">The offset, in bytes, from the beginning of the SMBDirect /// header to the first byte of the message’s data payload. If no data payload /// is associated with this message, this value MUST be 0. This offset MUST /// be 8-byte aligned from the beginning of the message. /// </param> /// <param name="dataLength">The length, in bytes, of the message’s data payload. /// If no data payload is associated with this message, this value MUST be 0. /// </param> /// <param name="padding">Additional bytes for alignment</param> /// <param name="buffer"></param> /// <returns>A buffer that contains the data payload as defined by /// the DataOffset and DataLength fields.</returns> public NtStatus SendDataTransferMessage( ushort creditsRequested, ushort creditsGranted, SmbdDataTransfer_Flags flags, ushort reserved, uint remainingDataLength, uint dataOffset, uint dataLength, byte[] padding, byte[] buffer) { SmbdDataTransferMessage smbdDataTransfer = new SmbdDataTransferMessage(); smbdDataTransfer.CreditsRequested = creditsRequested; smbdDataTransfer.CreditsGranted = creditsGranted; smbdDataTransfer.Flags = flags; smbdDataTransfer.Reserved = reserved; smbdDataTransfer.RemainingDataLength = remainingDataLength; smbdDataTransfer.DataOffset = dataOffset; smbdDataTransfer.DataLength = dataLength; smbdDataTransfer.Padding = padding; smbdDataTransfer.Buffer = buffer; return SendDataTransferMessage(smbdDataTransfer); }
public NtStatus SmbdSendDataTransferMessage( ushort creditsRequested, ushort creditsGranted, SmbdDataTransfer_Flags flags, ushort reserved, uint remainingDataLength, uint dataOffset, uint dataLength, byte[] padding, byte[] buffer ) { return this.client.SmbdSendDataTransferMessage( creditsRequested, creditsGranted, flags, reserved, remainingDataLength, dataOffset, dataLength, padding, buffer ); }