Funzione MountNtmsMedia (ntmsapi.h)

[Gestione archiviazione rimovibile non è più disponibile a partire da Windows 7 e Windows Server 2008 R2.]

La funzione MountNtmsMedia monta in modo sincrono uno o più supporti.

Sintassi

DWORD MountNtmsMedia(
  [in]      HANDLE                   hSession,
  [in]      LPNTMS_GUID              lpMediaId,
  [in, out] LPNTMS_GUID              lpDriveId,
  [in]      DWORD                    dwCount,
  [in]      DWORD                    dwOptions,
  [in]      int                      dwPriority,
  [in]      DWORD                    dwTimeout,
            LPNTMS_MOUNT_INFORMATION lpMountInformation
);

Parametri

[in] hSession

Handle alla sessione restituita dalla funzione OpenNtmsSession .

[in] lpMediaId

Matrice di identificatori univoci di supporti logici o lati.

[in, out] lpDriveId

Matrice di identificatori di unità che corrisponde all'elenco di supporti nel parametro lpMediaId . Questa matrice specifica un elenco di unità da montare in o riceve l'elenco di unità montate nel completamento dell'operazione. Vedere il valore NTMS_MOUNT_SPECIFIC_DRIVE riportato di seguito. Se la funzione MountNtmsMedia si verifica un timeout prima del completamento del montaggio, RSM non restituisce l'elenco delle unità.

[in] dwCount

Numero di identificatori multimediali e identificatori di unità passati nei parametri lpMediaId e lpDriveId . Si noti che lpMediaId e lpDriveId devono puntare al primo elemento di matrici di lunghezza uguale.

[in] dwOptions

Opzioni. Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
NTMS_MOUNT_SPECIFIC_DRIVE
Montare il supporto nelle unità specifiche fornite nel parametro lpDriveId .
NTMS_MOUNT_READ
Montare il supporto per l'accesso in lettura. Usare questo valore per montare supporti di sola lettura.
NTMS_MOUNT_WRITE
Montare il supporto per l'accesso in scrittura. Usare questo flag per impedire al montaggio di supporti completati RSM. Questo valore può essere combinato con NTMS_MOUNT_READ per l'accesso in lettura/scrittura.

RSM non può montare supporti completati se questo flag è selezionato.

NTMS_MOUNT_ERROR_NOT_AVAILABLE
Questo valore restituisce un errore se il supporto o un'unità non è disponibile.
NTMS_MOUNT_ERROR_OFFLINE
Non rilasciare una richiesta di operatore per montare supporti offline. Restituisce un errore se il supporto specificato non è attualmente presente in una libreria.

[in] dwPriority

Priorità del montaggio usato da RSM per consentire l'accesso alle unità. Le priorità vanno da -15 a 15, con 15 la priorità più alta e 0 è l'impostazione predefinita. Questo parametro può anche accettare una delle costanti seguenti. Un'applicazione deve passare NTMS_PRIORITY_NORMAL a meno che non sia necessaria una priorità di montaggio speciale.

Valore Significato
NTMS_PRIORITY_NORMAL
Montaggi che non sono critici per il tempo.
NTMS_PRIORITY_LOW
Montaggi eseguiti come attività in background.
NTMS_PRIORITY_HIGH
Montaggi che sono critici per il tempo.
NTMS_PRIORITY_LOWEST
Montaggio con priorità minima.
NTMS_PRIORITY_HIGHEST
Montaggio con priorità massima.

[in] dwTimeout

Tempo massimo consentito per montare il supporto specificato, in millisecondi. Impostare questo parametro su INFINITE per attendere il completamento del montaggio.

lpMountInformation

Questo parametro è riservato e deve essere NULL.

Valore restituito

Questa funzione restituisce uno dei valori seguenti.

Valore Significato
ERROR_ACCESS_DENIED
NTMS_USE_ACCESS al pool di supporti o alla libreria che contiene il supporto viene negato; altri errori di sicurezza sono anche possibili, ma indicano un errore del sottosistema di sicurezza.
ERROR_BUSY
I supporti o le unità sono occupati.
ERROR_CANCELLED
La richiesta è stata annullata dalla funzione CloseNtmsSession .
ERROR_DATABASE_FAILURE
Il database è inaccessibile o danneggiato.
ERROR_DATABASE_FULL
Il database è completo.
ERROR_DRIVE_MEDIA_MISMATCH
I supporti e l'unità specificati non sono nella stessa libreria.
ERROR_INVALID_DRIVE
Almeno una delle unità specificate non è valida.
ERROR_INVALID_LIBRARY
La libreria che contiene le unità o i supporti non è valida.
ERROR_INVALID_MEDIA
Uno o più supporti specificati non sono validi oppure sono presenti ID multimediali duplicati nell'elenco dei supporti.
ERROR_INVALID_STATE
Si è verificato uno stato multimediale o dispositivo imprevisto durante il montaggio.
ERROR_MEDIA_OFFLINE
Il supporto è offline e non può essere montato.
ERROR_NOT_ENOUGH_MEMORY
Si è verificato un errore di allocazione della memoria durante l'elaborazione.
ERROR_REQUEST_REFUSED
L'utente ha annullato la richiesta tramite l'interfaccia utente.
ERROR_RESOURCE_DISABLED
Una o più risorse necessarie per eseguire il montaggio sono disabilitate.
ERROR_SUCCESS
Il supporto è stato montato ed è pronto per l'uso.
ERROR_TIMEOUT
L'evento di timeout è scaduto durante il tentativo di acquisire una o più risorse necessarie. La richiesta di montaggio è stata annullata.
ERROR_WRITE_PROTECT
Lo stato multimediale è impostato su Complete e il valore NTMS_MOUNT_WRITE è stato specificato.

Commenti

La funzione MountNtmsMedia accoda una richiesta di montaggio del supporto specificato, quindi attende il numero di millisecondi specificati nel parametro dwTimeout per il completamento del montaggio o per il rilevamento di un errore. Se RSM non riesce a completare l'operazione di montaggio prima della scadenza di dwTimeout , NTMS annulla la richiesta e restituisce un errore. Se il supporto specificato si trova in una libreria offline, l'applicazione potrebbe essere bloccata per un periodo di tempo esteso. È possibile usare la funzione GetNtmsObjectInformation per determinare la posizione corrente del supporto specificato. È anche possibile usare il valore NTMS_MOUNT_ERROR_OFFLINE per generare un errore immediato anziché una richiesta di operatore quando il supporto è offline.

Se il supporto specificato è in uso o un'unità non è disponibile, il processo blocca fino al valore di timeout e restituisce ERROR_BUSY. Se viene specificato il valore NTMS_MOUNT_ERROR_NOT_AVAILABLE, la funzione restituisce un errore immediato quando una risorsa (supporto o unità) non è disponibile.

Il valore di timeout di INFINITE può essere usato per rendere la funzione in attesa senza timeout. Quando viene specificato un valore di timeout diverso da zero nel parametro dwTimeout , RSM attende che tutti i supporti specificati in lpMediaId vengano montati. Se il tempo specificato è trascorso prima che tutti i supporti vengano montati, la funzione MountNtmsMedia restituisce un errore e annulla la richiesta. L'applicazione può esaminare lo stato restituito e inviare di nuovo la richiesta, se necessario.

Quando vengono specificati più supporti da montare con una singola chiamata, tutti i supporti specificati devono trovarsi in una singola libreria. Se uno dei supporti specificati è offline, nessuno dei supporti verrà montato fino a quando tutti i supporti non saranno online.

Al completamento del montaggio lo stato dell'unità (ad esempio, la modalità di correzione o variabile) non è definito. L'applicazione deve configurare l'unità.

La funzione CloseNtmsSession può essere usata per annullare un montaggio in sospeso. Il comportamento predefinito è:

  • Se il supporto specificato è offline, RSM invia una richiesta di operatore per montare il supporto e la funzione MountNtmsMedia attende il periodo di tempo specificato nel parametro dwTimeout .
  • Se il supporto specificato è online, RSM richiede il montaggio.
  • Se un'unità o un supporto non è disponibile, RSM invia la richiesta e la funzione MountNtmsMedia attende il periodo di tempo specificato nel parametro dwTimeout .

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ntmsapi.h
Libreria Ntmsapi.lib
DLL Ntmsapi.dll

Vedi anche

Funzioni di Servizi multimediali