2.2.2.7.1 General Capability Set (GENERAL_CAPS_SET)
This packet is embedded into Server Core Capability Request and Client Core Capability Response messages. It describes non–device-specific capabilities.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Header |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
osType |
|||||||||||||||||||||||||||||||
osVersion |
|||||||||||||||||||||||||||||||
protocolMajorVersion |
protocolMinorVersion |
||||||||||||||||||||||||||||||
ioCode1 |
|||||||||||||||||||||||||||||||
ioCode2 |
|||||||||||||||||||||||||||||||
extendedPDU |
|||||||||||||||||||||||||||||||
extraFlags1 |
|||||||||||||||||||||||||||||||
extraFlags2 |
|||||||||||||||||||||||||||||||
SpecialTypeDeviceCap |
Header (8 bytes): A CAPABILITY_HEADER header. The CapabilityType field of this header MUST be set to CAP_GENERAL_TYPE. The Version field of this header MUST have one of the following values.
-
Value
Meaning
GENERAL_CAPABILITY_VERSION_01
0x00000001
Version 1. The SpecialTypeDeviceCap field of GENERAL_CAPS_SET is not present.
GENERAL_CAPABILITY_VERSION_02
0x00000002
Version 2. The SpecialTypeDeviceCap field of GENERAL_CAPS_SET is present.
osType (4 bytes): A 32-bit unsigned integer that is the identifier for the operating system that the capabilities are describing. The value of this field MUST be ignored.
osVersion (4 bytes): A 32-bit unsigned integer. This field is unused and SHOULD be ignored.
protocolMajorVersion (2 bytes): A 16-bit unsigned integer. This field MUST be set to 1.
protocolMinorVersion (2 bytes): A 16-bit unsigned integer. This field MUST be set to one of the values described by the VersionMinor field of the Server Client ID Confirm (section 2.2.2.6) packet.
ioCode1 (4 bytes): A 32-bit unsigned integer that identifies a bitmask of the supported I/O requests for the given device. If the bit is set, the I/O request is allowed. The requests are identified by the MajorFunction field in the Device I/O Request (section 2.2.1.4) header. This field MUST be set to a valid combination of the following values.
-
Value
Meaning
RDPDR_IRP_MJ_CREATE
0x00000001
Unused, always set.
RDPDR_IRP_MJ_CLEANUP
0x00000002
Unused, always set.
RDPDR_IRP_MJ_CLOSE
0x00000004
Unused, always set.
RDPDR_IRP_MJ_READ
0x00000008
Unused, always set.
RDPDR_IRP_MJ_WRITE
0x00000010
Unused, always set.
RDPDR_IRP_MJ_FLUSH_BUFFERS
0x00000020
Unused, always set.
RDPDR_IRP_MJ_SHUTDOWN
0x00000040
Unused, always set.
RDPDR_IRP_MJ_DEVICE_CONTROL
0x00000080
Unused, always set.
RDPDR_IRP_MJ_QUERY_VOLUME_INFORMATION
0x00000100
Unused, always set.
RDPDR_IRP_MJ_SET_VOLUME_INFORMATION
0x00000200
Unused, always set.
RDPDR_IRP_MJ_QUERY_INFORMATION
0x00000400
Unused, always set.
RDPDR_IRP_MJ_SET_INFORMATION
0x00000800
Unused, always set.
RDPDR_IRP_MJ_DIRECTORY_CONTROL
0x00001000
Unused, always set.
RDPDR_IRP_MJ_LOCK_CONTROL
0x00002000
Unused, always set.
RDPDR_IRP_MJ_QUERY_SECURITY
0x00004000
Enable Query Security requests (IRP_MJ_QUERY_SECURITY).
RDPDR_IRP_MJ_SET_SECURITY
0x00008000
Enable Set Security requests (IRP_MJ_SET_SECURITY).
ioCode2 (4 bytes): A 32-bit unsigned integer that is currently reserved for future use, and MUST be set to 0.
extendedPDU (4 bytes): A 32-bit unsigned integer that specifies extended PDU flags. This field MUST be set as a bitmask of the following values.
-
Value
Meaning
RDPDR_DEVICE_REMOVE_PDUS
0x00000001
Allow the client to send Client Drive Device List Remove packets.
RDPDR_CLIENT_DISPLAY_NAME_PDU
0x00000002
Unused, always set.
RDPDR_USER_LOGGEDON_PDU
0x00000004
Allow the server to send a Server User Logged On packet.
extraFlags1 (4 bytes): A 32-bit unsigned integer that specifies extended flags. The extraFlags1 field MUST be set as a bitmask of the following value.
-
Value
Meaning
ENABLE_ASYNCIO
0x00000001
Optionally present only in the Client Core Capability Response. Allows the server to send multiple simultaneous read or write requests on the same file from a redirected file system.<9>
extraFlags2 (4 bytes): A 32-bit unsigned integer that is currently reserved for future use, and MUST be set to 0.
SpecialTypeDeviceCap (4 bytes): A 32-bit unsigned integer that specifies the number of special devices to be redirected before the user is logged on. Special devices are those that are safe and/or required to be redirected before a user logs on (such as smart cards and serial ports).