IOCTL_SFFDISK_DEVICE_PASSWORD IOCTL (sffdisk.h)
Os aplicativos de modo de usuário usam esse IOCTL para executar operações básicas em um cartão SD (Secure Digital), como definir a senha no cartão, redefinir o cartão ou bloquear e desbloquear o cartão. Para obter uma descrição desse comando, consulte a especificação SDIO (E/S) digital segura .
Para executar essa operação, chame a função DeviceIoControl (descrita na documentação do SDK do Microsoft Windows) usando os parâmetros a seguir.
bRet = DeviceIoControl (
(HANDLE) hDevice,
(DWORD) dwIoControlCode,
(PUCHAR) lpInBuffer,
(DWORD) nInBufferSize,
(PUCHAR) lpOutBuffer,
(DWORD) nOutBufferSize,
(LPDWORD) lpBytesReturned,
(LPOVERLAPPED) lpOverlapped
);
Parâmetros
- hDevice
- O identificador para um volume na pilha SD.
- Dwiocontrolcode
- O código de controle da operação. Esse valor identifica a operação específica a ser executada e o tipo de dispositivo no qual executá-la. Use IOCTL_SFFDISK_DEVICE_PASSWORD para esta operação.
- lpInBuffer
- Ponteiro para o buffer de entrada. O chamador deve inicializar uma estrutura SFFDISK_DEVICE_PASSWORD_DATA e armazená-la no início do buffer. Imediatamente após a estrutura de SFFDISK_DEVICE_PASSWORD_DATA, o chamador deve passar cadeias de caracteres terminadas em NULL para a antiga e a nova senha. A senha atual (antiga) é a primeira e é seguida imediatamente pela nova senha.
- nInBufferSize
- Indica o tamanho em bytes do buffer de entrada apontado pelo parâmetro lpInBuffer . O tamanho do buffer de entrada deve ser a soma de sizeof(SFFDISK_DEVICE_PASSWORD_DATA) e o tamanho, em bytes, das informações de senha que o seguem.
- Lpoutbuffer
- Ponteiro para o buffer de saída que contém os resultados da operação. Se a operação falhar e GetLastError retornar o código de erro STATUS_BUFFER_TOO_SMALL, o buffer de saída não era grande o suficiente para manter os dados de resultados.
- nOutBufferSize
- Contém o tamanho, em bytes, do buffer de saída apontado pelo parâmetro lpOutBuffer .
- Lpbytesreturned
-
Ponteiro para uma variável que recebe o tamanho, em bytes, dos dados de resultados armazenados no buffer apontado por lpOutBuffer.
Se o buffer de saída for muito pequeno para manter os dados retornados, ele conterá um valor zero na saída, a chamada falhará e GetLastError retornará o código de erro ERROR_INSUFFICIENT_BUFFER. Por maiúsculas e minúsculas.
Se lpOverlapped for NULL (E/S não sobreposta), o chamador não poderá atribuir um NULL ao parâmetro lpBytesReturned na entrada. Se lpOverlapped não for NULL (E/S sobreposta), o chamador poderá atribuir um NULL ao parâmetro lpBytesReturned .
Se essa for uma operação sobreposta, você poderá recuperar o número de bytes retornados chamando a função GetOverlappedResult . Se hDevice estiver associado a uma porta de conclusão de E/S, você poderá obter o número de bytes retornados chamando a função GetQueuedCompletionStatus . Para obter uma descrição das funções GetOverlappedResult e GetQueuedCompletionStatus , consulte a documentação do SDK do Windows.
- Lpoverlapped
-
Ponteiro para uma estrutura OVERLAPPED, conforme descrito na documentação do SDK do Windows.
Se o chamador abriu o dispositivo com o sinalizador FILE_FLAG_OVERLAPPED, lpOverlapped deverá apontar para uma estrutura OVERLAPPED válida. Nesse caso, o sistema executa DeviceIoControl como uma operação assíncrona sobreposta. Se o chamador abriu o dispositivo com o sinalizador FILE_FLAG_OVERLAPPED e lpOverlapped for NULL, a função falhará de maneiras imprevisíveis.
Se o chamador abriu o dispositivo sem especificar o sinalizador FILE_FLAG_OVERLAPPED, o sistema ignorará o valor em lpOverlapped e a função DeviceIoControl não retornará até que a operação seja concluída ou até que ocorra um erro.
Código principal
Bloco de status
Se a operação for bem-sucedida, DeviceIoControl retornará um valor diferente de zero.
Se a operação falhar, DeviceIoControl retornará zero. Para obter informações de erro estendidas, chame GetLastError.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | sffdisk.h (inclua Sffdisk.h) |