| 166 | } |
| 167 | |
| 168 | BOOL SendIOCTL( |
| 169 | IN HANDLE hDevice, |
| 170 | IN DWORD Ioctl, |
| 171 | IN PVOID InputBuffer, |
| 172 | IN ULONG InputBufferSize, |
| 173 | IN PVOID OutputBuffer, |
| 174 | IN ULONG OutputBufferSize, |
| 175 | OPTIONAL OUT PDWORD BytesReturned, |
| 176 | OPTIONAL IN DWORD Method |
| 177 | ) { |
| 178 | DWORD RawIoctl = CTL_CODE(0x8000, Ioctl, Method, FILE_ANY_ACCESS); |
| 179 | DWORD Returned = 0; |
| 180 | BOOL Status = DeviceIoControl(hDevice, RawIoctl, InputBuffer, InputBufferSize, OutputBuffer, OutputBufferSize, &Returned, NULL); |
| 181 | if (BytesReturned) *BytesReturned = Returned; |
| 182 | return Status; |
| 183 | } |
| 184 | |
| 185 | BOOL SendRawIOCTL( |
| 186 | IN HANDLE hDevice, |