<div class="content" name="NTMS_LIBRARYINFORMATION" uuid="9117449f-2f75-4459-8a80-ad1f59f62ddb"><p>The NTMS_LIBRARYINFORMATION structure defines properties
specific to a <a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_ba47762a-6279-48b3-9a11-eeb239876e31" data-linktype="relative-path">library</a>
object.</p><dl>
<dd>
<div><pre> typedef struct _NTMS_LIBRARYINFORMATION {
   DWORD LibraryType;
   NTMS_GUID CleanerSlot;
   NTMS_GUID CleanerSlotDefault;
   BOOL LibrarySupportsDriveCleaning;
   BOOL BarCodeReaderInstalled;
   DWORD InventoryMethod;
   DWORD dwCleanerUsesRemaining;
   DWORD FirstDriveNumber;
   DWORD dwNumberOfDrives;
   DWORD FirstSlotNumber;
   DWORD dwNumberOfSlots;
   DWORD FirstDoorNumber;
   DWORD dwNumberOfDoors;
   DWORD FirstPortNumber;
   DWORD dwNumberOfPorts;
   DWORD FirstChangerNumber;
   DWORD dwNumberOfChangers;
   DWORD dwNumberOfMedia;
   DWORD dwNumberOfMediaTypes;
   DWORD dwNumberOfLibRequests;
   GUID Reserved;
   BOOL AutoRecovery;
   DWORD dwFlags;
 } NTMS_LIBRARYINFORMATION;
</pre></div>
</dd></dl><p><b>LibraryType:</b>  The library type
object. This MUST be one of the following values.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>NTMS_LIBRARYTYPE_UNKNOWN 0x00000000</td>
  <td>The library type cannot be determined.</td>
 </tr><tr>
  <td>NTMS_LIBRARYTYPE_OFFLINE 0x00000001</td>
  <td>The library is not accessible.</td>
 </tr><tr>
  <td>NTMS_LIBRARYTYPE_ONLINE 0x00000002</td>
  <td>A robotic element that automates the mounting and dismounting of media into one or more drives.</td>
 </tr><tr>
  <td>NTMS_LIBRARYTYPE_STANDALONE 0x00000003</td>
  <td>A stand-alone drive that is modeled as a library with one drive in RSM.</td>
 </tr></tbody></table>
</dd></dl><p><b>CleanerSlot:</b>  Specifies, for each
library, the <a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_a1f0ab90-f3c0-46b8-9c77-d0d7508ede94" data-linktype="relative-path">slot</a> that
was assigned to the <a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_95e53eb6-39e3-43ed-905e-ff1f427446d2" data-linktype="relative-path">cleaner</a>
<a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_a71cfd0c-a569-4544-8127-7ae496bca92b" data-linktype="relative-path">cartridge</a>. If no cleaner
slot is defined for this library, this member MUST be NULL.</p><p><b>CleanerSlotDefault:</b>  Specifies a
library&#39;s default or preferred cleaner slot. If there is no preferred slot,
this MUST be NULL.</p><p><b>LibrarySupportsDriveCleaning:</b>  Used
by drives requiring cleaning under automated control. If TRUE, automatic drive
cleaning operations are enabled; otherwise, cleaning operations are not
enabled.</p><p><b>BarCodeReaderInstalled:</b>  This MUST
return TRUE if a <a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_d4650c0f-44cb-4988-8aa6-ca8c3ffdf1a0" data-linktype="relative-path">bar code
reader</a> is installed in a library; otherwise, it MUST return FALSE.</p><p><b>InventoryMethod:</b>  A default or
user-selected method for performing an <a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_38cb8216-53ff-4936-a5c4-4d8d7672950a" data-linktype="relative-path">inventory</a> of this library.
This MUST be one of the following values.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>NTMS_INVENTORY_NONE 0x00000000</td>
  <td>An inventory MUST NOT be performed after the library door is closed. An inventory might be required if a mount label check fails.</td>
 </tr><tr>
  <td>NTMS_INVENTORY_FAST 0x00000001</td>
  <td>If the library has a bar code reader installed, a bar code inventory MUST be performed. If the library does not have a bar code reader, a differential inventory MUST be performed (slots that transitioned from empty to full are added).</td>
 </tr><tr>
  <td>NTMS_INVENTORY_OMID 0x00000002</td>
  <td>A full inventory MUST be performed. A full inventory involves mounting each side in a library and reading the on-media identification from the media.</td>
 </tr></tbody></table>
</dd></dl><p><b>dwCleanerUsesRemaining:</b>  The number
of uses remaining on the cleaner in the library. This member MUST be 0 if no
cleaner is present, or if the library does not support cleaning.</p><p><b>FirstDriveNumber:</b>  The number of the
first drive in the library.</p><p><b>dwNumberOfDrives:</b>  The number of
drives in the library.</p><p><b>FirstSlotNumber:</b>  The number of the
first slot in the library.</p><p><b>dwNumberOfSlots:</b>  The number of
slots in the library.</p><p><b>FirstDoorNumber:</b>  The number of the
first access door in the library.</p><p><b>dwNumberOfDoors:</b>  The number of
access doors in the library.</p><p><b>FirstPortNumber:</b>  The number of the
first <a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_e2c6dee3-9f37-4fe2-b970-ae3c00a8ed70" data-linktype="relative-path">IE port</a> in the
library.</p><p><b>dwNumberOfPorts:</b>  The number of IE
ports in the library.</p><p><b>FirstChangerNumber:</b>  The number of
the first <a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_898fa8ab-42d5-439f-9415-1589599fe913" data-linktype="relative-path">changer</a> in the
library.</p><p><b>dwNumberOfChangers:</b>  The number of
changers in the library.</p><p><b>dwNumberOfMedia:</b>  The number of
media in the online or <a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_f248d7b8-b3e9-421e-96c4-78551324fd86" data-linktype="relative-path">offline
library</a>.</p><p><b>dwNumberOfMediaTypes:</b>  The number of
media types that the library supports.</p><p><b>dwNumberOfLibRequests:</b>  The number
of current <a href="8d988f06-72be-47cf-9e09-9060aa8ed897#gt_f8da5142-cddf-49b1-b24c-a352db74cbbb" data-linktype="relative-path">library requests</a>.</p><p><b>Reserved:</b>  This MUST be 0 and MUST
be ignored on receipt.</p><p><b>AutoRecovery:</b>  If the mount operation
fails and this member is TRUE, a full inventory MUST be performed. If this
member is FALSE, a full inventory MUST NOT be performed. The failure can be
either a hardware or a label mismatch. For ATAPI CD libraries, this member MUST
NOT be set to FALSE. The default value is TRUE.</p><p><b>dwFlags:</b>  This member MUST be one or
more of the following values.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>NTMS_LIBRARYFLAG_FIXEDOFFLINE 0x01</td>
  <td>The library is an offline library, not a library that is not present.</td>
 </tr><tr>
  <td>NTMS_LIBRARYFLAG_CLEANERPRESENT 0x02</td>
  <td>A cleaner is present in the changer.</td>
 </tr><tr>
  <td>NTMS_LIBRARYFLAG_IGNORECLEANERUSESREMAINING 0x08</td>
  <td>The cleaner cartridge MUST be used until it no longer cleans the drive, instead of keeping track of the number of cleanings left. This flag MUST NOT be set by the client. The server MUST set the flag if dwCleanerUsesRemaining is 0xFFFFFFFF, and the server MUST clear the flag otherwise.</td>
 </tr><tr>
  <td>NTMS_LIBRARYFLAG_RECOGNIZECLEANERBARCODE 0x10</td>
  <td>Bar-coded cartridges that have CLN as a prefix MUST be treated as cleaner cartridges, instead of mounting them in the drive to identify them.</td>
 </tr></tbody></table>
</dd></dl><p>The NTMS_LIBRARYINFORMATION structure defines properties
specific to a library object.</p></div>