3.2.1.1 List of Storage Objects Present in the System

The list contains the following storage objects:

For each storage object, the list MUST contain the following data elements.

id:  Unique identifier (UID) of type LdmObjectId associated with the storage object for the entire duration of the server session (defined as one instantiation of the server process from initialization to shutdown). The identifier is assigned by the server and used by the client to refer to the object in the methods of the protocol. The server MUST NOT change the identifier and MUST NOT assign it to another object until the server shuts down. The identifier need not be persisted across server sessions.<15>

type:  Type of the storage object (for example, disk, disk region, FT volume, dynamic volume, drive letter, and file system).

LastKnownState: Modification sequence number associated with the storage object. The last known state is used by the protocol to make sure a client has the most up-to-date information about the object before trying to modify the object through one of the protocol commands. The server MUST increment the last known state value whenever the object is modified due to a client command or a higher-level event. The server MUST also compare the last known state passed by the client with its own last known state before allowing the client to modify the object. If they do not match, the server MUST fail the operation.

taskId:  Identifier of type LdmObjectId of the current task (if any) being executed by the server on the object. This field is not used and can be set to 0.

The list is populated at server initialization time and destroyed at shutdown. Objects are added to, or removed from, the list as a result of client requests or events triggered by the operating system.