2.2.1.6.3 PID Generation

Process IDs (PIDs) are generated on the CIFS client. The generation of PIDs MUST satisfy the following constraints:

  • The PID MUST be a 32-bit opaque value. The PID value is transferred in two fields (PIDHigh and PIDLow) in the SMB Header (section 2.2.3.1).

  • The PID MUST be unique within a specified client/server SMB connection.

  • The PID MUST remain valid as long as there are outstanding client requests at the server.

  • The value 0xFFFF MUST NOT be used as a valid PIDLow. All other possible values for PID, including zero (0x0000), are valid. The PIDLow value 0xFFFF is used in an OpLock Break Notification request, which is an SMB_COM_LOCKING_ANDX Request (section 2.2.4.32.1) sent from the server.

In earlier dialects of the SMB Protocol, the PID value was a 16-bit unsigned value. The NT LAN Manager dialect introduced the use of the PIDHigh header field to extend the PID value to 32 bits.