OEMIoControl
9/8/2008
Essa função fornece um genérico E/S código de controle (IOCTL) para informações OEM-supplied.
Syntax
BOOL OEMIoControl(
DWORD dwIoControlCode,
LPVOID lpInBuf,
DWORD nInBufSize,
LPVOID lpOutBuf,
DWORD nOutBufSize,
LPDWORD lpBytesReturned
);
Parameters
- dwIoControlCode
[no] IOCTL, que pode ser predefinido, ou qualquer OEM-defined código de controle. Para obter mais informações, consulte OAL IOCTLs.
lpInBuf
[out] Ponteiro para o buffer de entrada que pode conter informações adicionais associado com o dwIoControlCode parâmetro.De exemplo, quando dwIoControlCode é definido como IOCTL_HAL_GET_DEVICE_INFO, lpInBuf Pode conter um codificar SPI. Para obter mais informações, consulte SystemParametersInfo.
nInBufSize
[no] Tamanho em bytes do lpInBuf.De exemplo, quando dwIoControlCode é definido como IOCTL_HAL_GET_DEVICE_INFO e a entrada reserva contém codificar o SPI, nInBufsize é definido como o valor 4.
lpOutBuf
[out] Ponteiro para o buffer de saída fornecido pelo chamador.A implementação deve local as informações solicitadas pelo dwIoControlCode e lpInBuf Parâmetros em lpOutBuf, Definir lpBytesReturned Para indicar o tamanho dos dados em lpOutbufe retornar TRUE.
Se o tamanho das informações solicitadas ultrapassa o tamanho do buffer especificado por nOutBufSize, chamar a função SetLastError usando o sinalizador ERROR_INSUFFICIENT_BUFFER e FALSE de retorno.
nOutBufSize
[no] Especifica o número máximo de bytes que podem ser retornados em lpOutBuf.O chamador define esse valor.
- lpBytesReturned
[no] Número de bytes retornados em lpOutBuf.
Return Value
Se essa função for bem-sucedido, ele retornará TRUE.
Se essa função falhar, ele retornará FALSE.
Remarks
Essa função é a maneira de retornar informações solicitadas pelo sistema a SystemParametersInfo função. Esta função deve ser implementada. Quando um driver de dispositivo ou rotina chama a rotina kernel KernelIoControl para transmitir um IOCTL, chamadas de kernel OEMIoControl.
O sistema pode ser Pre-empted quando esta função é chamado. O kernel não faz nenhum processamento mas passa os parâmetros diretamente para essa função. A função kernel é fornecida para permitir que um driver de dispositivo OEM para se comunicar com codificar OAL modo kernel.
A partir desta função, você pode fazer chamadas Windows Embedded CE API.
Quando personalizado adicionando IOCTLs manipulada por OEMIoControl, o último identificador usado é igual a 67 para kernel IOCTLs com base em FILE_DEVICE_HAL.
Função códigos 0 até 2047 são reservados para Microsoft; Códigos 2048 através de 4095 são reservados para os clientes.
Atualmente, as equipes de produto interno e externo clientes estão usando valores do intervalo de 1000 a 1100.
Melhores Práticas
Em Windows Embedded CE 6.0, chamadas para OEMIoControl** Passe por um componente modo kernel (oalioctl.dll). Este componente tem uma lista de usuário-acessível códigos OAL IOCTL. Se a chamar do aplicativo usuário for para um dos IOCTLs neste módulo, em seguida, a chamar será encaminhada para codificar a OAL. Caso contrário, os aplicativos modo usuário forma chamadas são rejeitados. Isso não tem impacto nas chamadas para OEMIoControl de drivers modo kernel. **
OEM pode adicionar ou excluir um codificar IOCTL dessa lista atualizando o seguinte arquivo origem: % _WINCEROOT%\public\common\oak\oalioctl\oalioctl.cpp.
Por padrão apenas o seguinte OAL IOCTL códigos é permitidos a partir de aplicativos modo usuário:
- IOCTL_HAL_GET_CACHE_INFO
- IOCTL_HAL_GET_DEVICE_INFO
- IOCTL_HAL_GET_DEVICEID
- IOCTL_HAL_GET_UUID
- IOCTL_PROCESSOR_INFORMATION
Iniciando com Windows Embedded CE 6.0, IOCTL_HAL_GET_DEVICEID e IOCTL_HAL_GET_UUID são substituído. Eles foram substituídos funcionalmente por novos códigos SPI_ * em IOCTL_HAL_GET_DEVICE_INFO. Para obter mais informações, consulte Device Information IOCTL Unification.
Requirements
Header | kwin32.h |
Library | Nk.lib |
Windows Embedded CE | Windows CE 2.10 and later |
See Also
Reference
OEMSetRealTime
IOCTL_HAL_GET_CACHE_INFO
IOCTL_HAL_GET_DEVICE_INFO
IOCTL_HAL_GET_DEVICEID
IOCTL_HAL_GET_UUID
IOCTL_PROCESSOR_INFORMATION
Concepts
Implementing the OEMIoControl Function
Device Information IOCTL Unification