AllocateNtmsMedia-Funktion (ntmsapi.h)
[Wechselmedien-Manager ist ab Windows 7 und Windows Server 2008 R2 nicht mehr verfügbar.]
Die AllocateNtmsMedia-Funktion ordnet einen Teil der verfügbaren Medien zu.
Syntax
DWORD AllocateNtmsMedia(
[in] HANDLE hSession,
[in] LPNTMS_GUID lpMediaPool,
[in] LPNTMS_GUID lpPartition,
[out] LPNTMS_GUID lpMediaId,
[in] DWORD dwOptions,
[in] DWORD dwTimeout,
[out] LPNTMS_ALLOCATION_INFORMATION lpAllocateInformation
);
Parameter
[in] hSession
Handle für die von der OpenNtmsSession-Funktion zurückgegebene Sitzung.
[in] lpMediaPool
Eindeutiger Bezeichner des Medienpools, aus dem die Medien zugeordnet werden sollen. Für die Zuordnung können nur Anwendungspools angegeben werden.
[in] lpPartition
Teilbezeichner einer Seite, die als logische Medienbezeichner (LMID) verwendet werden soll. Die Seite muss den Status Verfügbar oder Import aufweisen. Dieses Feature kann zum Zuordnen einer bestimmten Seite oder zum Importieren von Medien verwendet werden. Dieser Parameter ist optional.
[out] lpMediaId
LMID des zugeordneten Mediums. Dieser Parameter ist NULL , wenn das Medium nicht zugeordnet werden kann.
[in] dwOptions
Optionen. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.
[in] dwTimeout
Maximal zulässige Zeit zum Zuordnen der angegebenen Medien in Millisekunden. Wenn dieser Parameter INFINITE ist, tritt für die Funktion kein Timeout auf. Wenn dieser Parameter null ist, wartet er auf Medien. Beachten Sie, dass diese Funktion keine Anforderung für weitere Medien in die Warteschlange stellt, wenn der dwOptions-Parameter NTMS_ALLOCATE_ERROR_IF_UNAVAILABLE angibt.
[out] lpAllocateInformation
Zeiger auf eine NTMS_ALLOCATION_INFORMATION Struktur, die den Quellmedienpool empfängt, aus dem das Medium entnommen wurde. Dieser Parameter kann NULL sein.
Rückgabewert
Diese Funktion gibt einen der folgenden Werte zurück.
Wert | Bedeutung |
---|---|
|
NTMS_CONTROL_ACCESS zum Medienpool der Medien wird verweigert. Es sind auch andere Sicherheitsfehler möglich, die jedoch auf einen Sicherheitssubsystemfehler hinweisen.
Windows XP: NTMS_MODIFY_ACCESS zum Medienpool von Medien wird verweigert. |
|
Der Operator hat die Anforderung für neue Medien abgebrochen. |
|
Auf die Datenbank kann nicht zugegriffen werden oder beschädigt werden. |
|
Die Datenbank ist voll. |
|
Eine Zwischenressource ist nicht verfügbar. beispielsweise ist der kostenlose Medienpool nicht verfügbar. |
|
Das Sitzungshandle fehlt oder ist ungültig. |
|
Die Partitions-ID oder LMID war bei der Eingabe bei Verwendung des NTMS_ALLOCATE_NEXT-Flags ungültig. |
|
Die Medienpool-ID ist ungültig. |
|
Die Id des Medien- oder Medienpools fehlt. |
|
Die angegebenen Medien sind offline und können nicht zugeordnet werden. |
|
Innerhalb des angegebenen Timeoutereignisses wurden keine Medien zugeordnet. |
|
Während der Verarbeitung ist ein Zuordnungsfehler aufgetreten. |
|
Die Funktion war erfolgreich. |
|
Das Timeoutereignis ist abgelaufen, bevor Medien verfügbar waren. |
Hinweise
Die AllocateNtmsMedia-Funktion gibt eine LMID zurück. Wenn der angegebene Medienpool keine online verfügbaren Medien enthält, kann AllocateNtmsMedia je nach Richtlinie des Medienpools den kostenlosen Medienpool nach dem angegebenen Medium durchsuchen, um in den angegebenen Medienpool zu wechseln. Medien aus dem angegebenen Medienpool werden zuerst zugeordnet, und dann werden die kostenlosen Medien verschoben und zugeordnet.
Wenn der Medienpool online verfügbare Medien enthält, wird ein Medium aus dem Pool zugeordnet.
Wenn der Medienpool für die automatische Zuweisung von Medien aus dem kostenlosen Pool konfiguriert ist und der kostenlose Pool online verfügbare Medien enthält, wird ein Medium in den angegebenen Pool verschoben und zugeordnet.
Windows Server 2003: Wenn Medien aus dem kostenlosen Pool zugeordnet werden, ist NTMS_USE_ACCESS zum kostenlosen Pool und NTMS_CONTROL_ACCESS zum Zielpool erforderlich. Wenn der kostenlose Pool nicht der Quellmedienpool ist, ist NTMS_CONTROL_ACCESS sowohl für Quell- als auch für Zielpools erforderlich.
Wenn der NTMS_ALLOCATE_NEXT Wert angegeben wird, muss der lpMediaId-Parameter zum Zeitpunkt des Aufrufs auf eine gültige Medien-ID verweisen. In diesem Fall wird lpMediaId als IN- und OUT-Parameter verwendet. Die nächste Seite des mehrseitigen Mediums, das von lpMediaId angegeben wird, wird zugeordnet, und die neue Partitions-ID wird über lpMediaId zurückgegeben (überschreiben die ursprüngliche Medien-ID übergeben).
Wenn NTMS_ALLOCATE_ERROR_IF_UNAVAILABLE angegeben ist, wird ERROR_MEDIA_ UNAVAILABLE zurückgegeben, wenn keine Medien verfügbar sind.
Bei Bedarf generiert RSM eine Operatoranforderung zum Einfügen neuer oder Verfügbarer Medien. Wenn die im dwTimeout-Parameter angegebene Zeit verstrichen ist, bevor die Operatoranforderung verarbeitet wird, gibt RSM ERROR_TIMEOUT zurück und löscht die Operatoranforderung.
Wenn der Benutzer die Zuordnungsanforderung abbricht, gibt RSM ERROR_CANCELLED zurück.
Wenn ein Benutzer angibt, dass die Operatoranforderung erfüllt wurde, wird die Anforderung gelöscht, und RSM wiederholt den Prozess.
Wenn eine Anwendung neue Medien mit Daten benötigt, platziert ein Benutzer oder Administrator die Medien in einer Bibliothek oder einem Laufwerk. RSM identifiziert die Medien und platziert es im Importpool. Die Anwendung durchsucht den Importpool, verschiebt die Medien in ihren Anwendungspool und ordnet sie zu. Dieser Routineprozess kann durch einen einzelnen Aufruf von AllocateNtmsMedia optimiert und atomar gestaltet werden. Nach dem Durchsuchen des Importpools kann die Anwendung AllocateNtmsMedia aufrufen und die Partitions-ID der Seite als Wert des lpPartId-Parameters übergeben. RSM dann:
- verschiebt das Medium in den angegebenen Medienpool.
- ändert den Zustand des Mediums in zugeordnet.
- gibt eine LMID zurück.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | ntmsapi.h |
Bibliothek | Ntmsapi.lib |
DLL | Ntmsapi.dll |