Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 de de E/S Digital Seguro (SDIO).
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 de 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 NULL para o antigo 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 tamanhos de(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 foi 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 apontados por lpOutBuffer.
Se o buffer de saída for muito pequeno para manter os dados de retorno, ele conterá um valor zero na saída, a chamada falhará e GetLastError retornará o código de erro ERROR_INSUFFICIENT_BUFFER. Caso.
Se lpOverlapped for NULL (E/S não sobreposta), o chamador não poderá atribuir um NULL a parâmetro lpBytesReturned na entrada. Se lpOverlapped não estiver NULL (E/S sobreposta), o chamador poderá atribuir uma 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 é NULL, a função falha de maneiras imprevisíveis.
Se o chamador abriu o dispositivo sem especificar o sinalizador de 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) |