IOCTL_SFFDISK_DEVICE_PASSWORD IOCTL (sffdisk.h)

Benutzermodusanwendungen verwenden diese IOCTL, um grundlegende Vorgänge für eine Secure Digital -Karte auszuführen, z. B. das Festlegen des Kennworts für den Karte, das Zurücksetzen des Karte oder das Sperren und Entsperren des Karte. Eine Beschreibung dieses Befehls finden Sie in der SDIO-Spezifikation (Secure Digital E/O).

Rufen Sie zum Ausführen dieses Vorgangs die DeviceIoControl-Funktion (in der Microsoft Windows SDK-Dokumentation beschrieben) mithilfe der folgenden Parameter auf.

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

Parameter

hGeräte
Das Handle für ein Volume im SD-Stapel.
dwIoControlCode
Der Steuerungscode für den Vorgang. Dieser Wert gibt den spezifischen Vorgang an, der ausgeführt werden soll, und den Typ des Geräts, auf dem er ausgeführt werden soll. Verwenden Sie für diesen Vorgang IOCTL_SFFDISK_DEVICE_PASSWORD.
lpInBuffer
Zeiger auf den Eingabepuffer. Der Aufrufer muss eine SFFDISK_DEVICE_PASSWORD_DATA-Struktur initialisieren und am Anfang des Puffers speichern. Unmittelbar nach der SFFDISK_DEVICE_PASSWORD_DATA-Struktur muss der Aufrufer NULL-Zeichenfolgen für das alte und das neue Kennwort übergeben. Das aktuelle (alte) Kennwort steht an erster Stelle und folgt unmittelbar auf das neue Kennwort.
nInBufferSize
Gibt die Größe des Eingabepuffers in Bytes an, auf den der lpInBuffer-Parameter verweist. Die Größe des Eingabepuffers sollte die Summe von sizeof(SFFDISK_DEVICE_PASSWORD_DATA) und die Größe der folgenden Kennwortinformationen in Bytes sein.
lpOutBuffer
Zeiger auf den Ausgabepuffer, der die Ergebnisse des Vorgangs enthält. Wenn der Vorgang fehlschlägt und GetLastError den Fehlercode STATUS_BUFFER_TOO_SMALL zurückgibt, war der Ausgabepuffer nicht groß genug, um die Ergebnisdaten aufzunehmen.
nOutBufferSize
Enthält die Größe des Ausgabepuffers in Bytes, auf den der lpOutBuffer-Parameter verweist.
lpBytesReturned
Zeiger auf eine Variable, die die Größe der Ergebnisdaten in Bytes empfängt, die im Puffer gespeichert sind, auf den lpOutBuffer verweist.

Wenn der Ausgabepuffer zu klein ist, um die Rückgabedaten zu speichern, enthält er den Wert null für die Ausgabe, der Aufruf schlägt fehl, und GetLastError gibt den Fehlercode ERROR_INSUFFICIENT_BUFFER zurück. Für den Fall.

Wenn lpOverlappedNULL ist (nicht überlappende E/A), kann der Aufrufer bei der Eingabe keinen NULL-Parameterdem lpBytesReturned-Parameter zuweisen. Wenn lpOverlapped nicht NULL (überlappende E/A) ist, kann der Aufrufer dem parameter lpBytesReturned einen NULL-Wert zuweisen.

Wenn es sich um einen überlappenden Vorgang handelt, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie die GetOverlappedResult-Funktion aufrufen. Wenn hDevice einem E/A-Vervollständigungsport zugeordnet ist, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie die GetQueuedCompletionStatus-Funktion aufrufen. Eine Beschreibung der Funktionen GetOverlappedResult und GetQueuedCompletionStatus finden Sie in der Dokumentation zum Windows SDK.

lpOverlapped
Zeiger auf eine ÜBERLAPPENDE Struktur, wie in der Dokumentation zum Windows SDK beschrieben.

Wenn der Aufrufer das Gerät mit dem flag FILE_FLAG_OVERLAPPED geöffnet hat, muss lpOverlapped auf eine gültige OVERLAPPED-Struktur verweisen. In diesem Fall führt das System DeviceIoControl als überlappenden, asynchronen Vorgang aus. Wenn der Aufrufer das Gerät mit dem flag FILE_FLAG_OVERLAPPED geöffnet hat und lpOverlappedNULL ist, schlägt die Funktion auf unvorhersehbare Weise fehl.

Wenn der Aufrufer das Gerät geöffnet hat, ohne das Flag FILE_FLAG_OVERLAPPED anzugeben, ignoriert das System den Wert in lpOverlapped, und die DeviceIoControl-Funktion wird erst zurückgegeben, wenn der Vorgang abgeschlossen wurde oder bis ein Fehler auftritt.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Statusblock

Wenn der Vorgang erfolgreich ist, gibt DeviceIoControl einen wert ohne Zero zurück.

Wenn der Vorgang fehlschlägt, gibt DeviceIoControl null zurück. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Anforderungen

Anforderung Wert
Header sffdisk.h (include Sffdisk.h)