Fungsi AllocateNtmsMedia (ntmsapi.h)

[Manajer Penyimpanan yang Dapat Dilepas tidak lagi tersedia untuk digunakan pada Windows 7 dan Windows Server 2008 R2.]

Fungsi AllocateNtmsMedia mengalokasikan sepotong media yang tersedia.

Sintaks

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

Tangani ke sesi yang dikembalikan oleh fungsi OpenNtmsSession .

[in] lpMediaPool

Pengidentifikasi unik kumpulan media tempat media akan dialokasikan. Hanya kumpulan aplikasi yang dapat ditentukan untuk alokasi.

[in] lpPartition

Pengidentifikasi bagian dari sisi yang akan digunakan sebagai pengidentifikasi media logis (LMID). Sisi harus dalam status Tersedia atau Impor. Fitur ini dapat digunakan untuk mengalokasikan sisi tertentu atau untuk mengimpor media. Parameter ini bersifat opsional.

[out] lpMediaId

LMID dari media yang dialokasikan. Parameter ini adalah NULL jika media tidak dapat dialokasikan.

[in] dwOptions

Opsi. Parameter ini bisa menjadi satu atau beberapa nilai berikut.

Nilai Makna
NTMS_ALLOCATE_ERROR_IF_UNAVAILABLE
Mencegah pengiriman permintaan operator untuk media baru jika tidak ada yang dapat dialokasikan dengan batasan yang ditentukan.
NTMS_ALLOCATE_NEW
Mengalokasikan sisi media yang ditentukan yang tidak dapat dibagikan dengan media logis aplikasi lain. Misalnya, nilai ini mencadangkan sisi kedua media optik dua sisi.
NTMS_ALLOCATE_NEXT
Alokasikan sisi berikutnya dari media multi-sisi yang sebelumnya dialokasikan dengan nilai NTMS_ALLOCATE_NEW. Ini memungkinkan satu aplikasi untuk menggunakan kedua sisi media dua sisi dan memastikan bahwa aplikasi memiliki semua data pada bagian media fisik.

Jika semua sisi media sudah dialokasikan, permintaan alokasi gagal.

[in] dwTimeout

Waktu maksimum yang diizinkan untuk mengalokasikan media yang ditentukan, dalam milidetik. Jika parameter ini INFINITE, fungsi tidak akan kehabisan waktu. Jika parameter ini nol, parameter akan menunggu media. Perhatikan bahwa fungsi ini tidak mengantre permintaan untuk lebih banyak media jika parameter dwOptions menentukan NTMS_ALLOCATE_ERROR_IF_UNAVAILABLE.

[out] lpAllocateInformation

Penunjuk ke struktur NTMS_ALLOCATION_INFORMATION yang menerima kumpulan media sumber tempat media diambil. Parameter ini bisa NULL.

Menampilkan nilai

Fungsi ini mengembalikan salah satu nilai berikut.

Nilai Makna
ERROR_ACCESS_DENIED
NTMS_CONTROL_ACCESS ke kumpulan media ditolak. Kesalahan keamanan lainnya juga dimungkinkan, tetapi akan menunjukkan kesalahan subsistem keamanan.

Windows XP: NTMS_MODIFY_ACCESS ke kumpulan media ditolak.

ERROR_CANCELLED
Operator membatalkan permintaan media baru.
ERROR_DATABASE_FAILURE
Database tidak dapat diakses atau rusak.
ERROR_DATABASE_FULL
Database penuh.
ERROR_DEVICE_NOT_AVAILABLE
Sumber daya perantara tidak tersedia; misalnya, kumpulan media gratis tidak tersedia.
ERROR_INVALID_HANDLE
Handel sesi hilang atau tidak valid.
ERROR_INVALID_MEDIA
ID partisi atau LMID tidak valid saat input saat menggunakan bendera NTMS_ALLOCATE_NEXT.
ERROR_INVALID_MEDIA_POOL
ID kumpulan media tidak valid.
ERROR_INVALID_PARAMETER
ID media atau kumpulan media hilang.
ERROR_MEDIA_OFFLINE
Media yang ditentukan sedang offline dan tidak dapat dialokasikan.
ERROR_MEDIA_UNAVAILABLE
Tidak ada media yang dialokasikan dalam peristiwa waktu habis yang ditentukan.
ERROR_NOT_ENOUGH_MEMORY
Terjadi kegagalan alokasi selama pemrosesan.
ERROR_SUCCESS
Fungsi berhasil.
ERROR_TIMEOUT
Peristiwa waktu habis kedaluwarsa sebelum media tersedia.

Keterangan

Fungsi AllocateNtmsMedia mengembalikan LMID. Bergantung pada kebijakan kumpulan media, jika kumpulan media yang ditentukan tidak berisi media yang Tersedia online, AllocateNtmsMedia mungkin mencari kumpulan media gratis untuk media yang ditentukan untuk berpindah ke kumpulan media yang ditentukan. Media dari kumpulan media yang ditunjuk dialokasikan terlebih dahulu, dan kemudian media gratis dipindahkan dan dialokasikan.

Jika kumpulan media berisi media online yang Tersedia, media dari kumpulan dialokasikan.

Jika kumpulan media dikonfigurasi untuk mengalokasikan media dari kumpulan gratis secara otomatis, dan kumpulan gratis berisi media online Tersedia, media dipindahkan ke kumpulan yang ditentukan dan dialokasikan.

Windows Server 2003: Jika media dialokasikan dari kumpulan gratis, diperlukan NTMS_USE_ACCESS ke kolam renang gratis dan NTMS_CONTROL_ACCESS ke kumpulan tujuan. Jika kumpulan gratis bukan kumpulan media sumber, NTMS_CONTROL_ACCESS diperlukan pada kumpulan sumber dan tujuan.

Ketika nilai NTMS_ALLOCATE_NEXT ditentukan, parameter lpMediaId harus menunjuk ke ID media yang valid pada saat pemanggilan. Dalam hal ini, lpMediaId digunakan sebagai parameter IN dan OUT. Sisi berikutnya dari media beberapa sisi yang ditentukan oleh lpMediaId dialokasikan, dan ID partisi baru dikembalikan melalui lpMediaId (menimpa ID media asli yang diteruskan).

Jika NTMS_ALLOCATE_ERROR_IF_UNAVAILABLE ditentukan, ERROR_MEDIA_ TIDAK TERSEDIA dikembalikan jika tidak ada media yang tersedia.

Jika perlu, RSM menghasilkan permintaan operator untuk menyisipkan media baru atau Tersedia. Jika waktu yang ditentukan dalam parameter dwTimeout berlalu sebelum permintaan operator ditangani, RSM mengembalikan ERROR_TIMEOUT dan menghapus permintaan operator.

Jika pengguna membatalkan permintaan alokasi, RSM mengembalikan ERROR_CANCELLED.

Jika pengguna menunjukkan bahwa permintaan operator telah terpenuhi, permintaan akan dihapus dan RSM mencoba kembali prosesnya.

Ketika aplikasi memerlukan media baru yang berisi data, pengguna atau administrator menempatkan media di pustaka atau drive. RSM mengidentifikasi media dan menempatkannya di kumpulan impor. Aplikasi mencari kumpulan impor, memindahkan media ke kumpulan aplikasinya dan mengalokasikannya. Proses rutin ini dapat disederhanakan dan dibuat atomik melalui satu panggilan ke AllocateNtmsMedia. Setelah mencari kumpulan impor, aplikasi dapat memanggil AllocateNtmsMedia, meneruskan ID partisi sisi sebagai nilai parameter lpPartId . RSM kemudian:

  1. memindahkan media ke kumpulan media yang ditentukan.
  2. mengubah status media untuk dialokasikan.
  3. mengembalikan LMID.
Catatan Untuk media dua sisi, sisi balik tetap dalam status Impor dan tidak tersedia untuk digunakan hingga diimpor.
 

Persyaratan

   
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header ntmsapi.h
Pustaka Ntmsapi.lib
DLL Ntmsapi.dll

Lihat juga

DeallocateNtmsMedia

Fungsi Media Services

NTMS_ALLOCATION_INFORMATION