IOCTL_SFFDISK_DEVICE_PASSWORD IOCTL (sffdisk.h)

Aplikasi mode pengguna menggunakan IOCTL ini untuk melakukan operasi dasar pada kartu Secure Digital (SD), seperti mengatur kata sandi pada kartu, mengatur ulang kartu, atau mengunci dan membuka kunci kartu. Untuk deskripsi perintah ini, lihat spesifikasi Secure Digital I/O (SDIO ).

Untuk melakukan operasi ini, panggil fungsi DeviceIoControl (dijelaskan dalam dokumentasi Microsoft Windows SDK) menggunakan parameter berikut.

bRet = DeviceIoControl (
    (HANDLE)  hDevice, 
    (DWORD)  dwIoControlCode, 
    (PUCHAR)  lpInBuffer,
    (DWORD)  nInBufferSize, 
    (PUCHAR)  lpOutBuffer,
    (DWORD)  nOutBufferSize, 
    (LPDWORD)  lpBytesReturned,
    (LPOVERLAPPED)  lpOverlapped 
  );

Parameter

hDevice
Handel ke volume di tumpukan SD.
dwIoControlCode
Kode kontrol untuk operasi. Nilai ini mengidentifikasi operasi tertentu yang akan dilakukan dan jenis perangkat untuk melakukannya. Gunakan IOCTL_SFFDISK_DEVICE_PASSWORD untuk operasi ini.
lpInBuffer
Arahkan ke buffer input. Penelepon harus menginisialisasi struktur SFFDISK_DEVICE_PASSWORD_DATA dan menyimpannya di awal buffer. Segera setelah struktur SFFDISK_DEVICE_PASSWORD_DATA, pemanggil harus meneruskan string yang dihentikan NULL untuk kata sandi lama dan baru. Kata sandi saat ini (lama) adalah yang pertama, dan segera diikuti oleh kata sandi baru.
nInBufferSize
Menunjukkan ukuran dalam byte buffer input yang ditunjukkan oleh parameter lpInBuffer . Ukuran buffer input harus berupa jumlah sizeof(SFFDISK_DEVICE_PASSWORD_DATA) dan ukuran, dalam byte, dari informasi kata sandi yang mengikutinya.
lpOutBuffer
Penunjuk ke buffer output yang berisi hasil operasi. Jika operasi gagal dan GetLastError mengembalikan kode kesalahan STATUS_BUFFER_TOO_SMALL, buffer output tidak cukup besar untuk menyimpan data hasil.
nOutBufferSize
Berisi ukuran, dalam byte, dari buffer output yang diacu oleh parameter lpOutBuffer .
lpBytesReturned
Penunjuk ke variabel yang menerima ukuran, dalam byte, dari data hasil yang disimpan dalam buffer yang diacu oleh lpOutBuffer.

Jika buffer output terlalu kecil untuk menyimpan data yang dikembalikan maka akan berisi nilai nol pada output, panggilan akan gagal, dan GetLastError akan mengembalikan kode kesalahan ERROR_INSUFFICIENT_BUFFER. Untuk berjaga-jaga.

Jika lpOverlapped adalah NULL (I/O yang tidak tumpang tindih), pemanggil tidak dapat menetapkan NULL ke parameter lpBytesReturned pada input. Jika lpOverlapped bukan NULL (I/O yang tumpang tindih), pemanggil dapat menetapkan NULL ke parameter lpBytesReturned .

Jika ini adalah operasi yang tumpang tindih, Anda dapat mengambil jumlah byte yang dikembalikan dengan memanggil fungsi GetOverlappedResult . Jika hDevice dikaitkan dengan port penyelesaian I/O, Anda bisa mendapatkan jumlah byte yang dikembalikan dengan memanggil fungsi GetQueuedCompletionStatus . Untuk deskripsi fungsi GetOverlappedResult dan GetQueuedCompletionStatus lihat dokumentasi Windows SDK.

lpOverlapped
Penunjuk ke struktur YANG TUMPANG TINDIH, seperti yang dijelaskan dalam dokumentasi Windows SDK.

Jika penelepon membuka perangkat dengan bendera FILE_FLAG_OVERLAPPED, lpOverlapped harus menunjuk ke struktur TUMPANG TINDIH yang valid. Dalam hal ini, sistem menjalankan DeviceIoControl sebagai operasi asinkron yang tumpang tindih. Jika penelepon membuka perangkat dengan bendera FILE_FLAG_OVERLAPPED, dan lpOverlapped adalah NULL, fungsi gagal dengan cara yang tidak dapat diprediksi.

Jika penelepon membuka perangkat tanpa menentukan bendera FILE_FLAG_OVERLAPPED, sistem mengabaikan nilai dalam lpOverlapped, dan fungsi DeviceIoControl tidak kembali sampai operasi selesai, atau sampai terjadi kesalahan.

Kode utama

IRP_MJ_DEVICE_CONTROL

Blok status

Jika operasi berhasil, DeviceIoControl mengembalikan nilai bukan nol.

Jika operasi gagal, DeviceIoControl mengembalikan nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Persyaratan

Persyaratan Nilai
Header sffdisk.h (termasuk Sffdisk.h)