Compartilhar via


DeviceIoControl

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função envia um IOCTL diretamente para um driver de dispositivo especificado, fazendo com que o correspondente dispositivo para executar a operação especificada.

Syntax

BOOL DeviceIoControl(
  HANDLE hDevice,
  DWORD dwIoControlCode,
  LPVOID lpInBuffer,
  DWORD nInBufferSize,
  LPVOID lpOutBuffer,
  DWORD nOutBufferSize,
  LPDWORD lpBytesReturned,
  LPOVERLAPPED lpOverlapped
);

Parameters

  • hDevice
    [no] Identificador para o dispositivo que deve executar a operação. Para obter um identificador dispositivo, chamar a função CreateFile.
  • dwIoControlCode
    [no] IOCTL para a operação. Este valor identifica a operação específica para executar e o tipo de dispositivo no qual executar a operação. Há não valores específicos definidos para o dwIoControlCode parâmetro. No entanto, você pode definir personalizado IOCTL_XXX IOCTLs com o CTL_CODE macro. Em seguida, você pode anunciar que esses IOCTLs e um aplicativo pode usar esses IOCTLs com DeviceIoControl Para executar as funções driver-specific.

    Para obter mais informações sobre o CTL_CODE macro, consulte CTL_CODE.**

  • lpInBuffer
    [no] Ponteiro longo para uma reserva que contém os dados exigido para executar a operação. Definir como NULL se o dwIoControlCode parâmetro especifica uma operação que não requer entrada dados.
  • nInBufferSize
    [no] Tamanho, em bytes, da reserva apontado pelo lpInBuffer.
  • lpOutBuffer
    [out] Ponteiro longo para uma reserva que recebe dados de saída para a operação. Definir como NULL se o dwIoControlCode parâmetro especifica uma operação que não gerar saída dados.
  • nOutBufferSize
    [out] Tamanho, em bytes, da reserva apontado pelo lpOutBuffer.
  • lpBytesReturned
    [out] Ponteiro longo para uma variável que recebe o tamanho, em bytes, dos dados armazenados em lpOutBuffer. O DeviceIoControl função desnecessariamente pode usar esse parâmetro. De exemplo, se uma operação não gerar dados para lpOutBuffer e lpOutBuffer é NULL, o valor de lpBytesReturned Não faz sentido.
  • lpOverlapped
    [no] Ignorada; Definir como NULL.

Return Value

Nonzero indica sucesso. Zero indica falha. Para obter informações de erro estendidas, chamar a função GetLastError.

Remarks

Para alguns IOCTLs, tais quantos IOCTLs o IOCTL_DISK_ *, o DeviceIoControl função não alteração a lpBytesReturned parâmetro. Esses IOCTLs retornar quaisquer informações para o buffer de entrada especificado por lpOutBuffer. DeviceIoControl Define somente lpBytesReturned Quando o IOCTL grava lpOutBuffer.

Requirements

Header winbase.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Other Resources

CTL_CODE
CreateFile