Compartilhar via


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

IRP_MJ_DEVICE_CONTROL

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)