• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Unsafe To Safe

  • Автор темы Elephant
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

Elephant

#1
Как этот код будет выглядеть на C# без использования unsafe?

<!--shcode--><pre><code class='csharp'>for (i=0; i<QueueSz; i++)
{
fixed( byte *tmp0 = ovLaps)
{
OVERLAPPED *ovLapStatus = (OVERLAPPED*) tmp0;
ovLapStatus->hEvent = (uint) PInvoke.CreateEvent(0, 0, 0, 0);
}
}[/CODE]

Спасибо.
 
E

Elephant

#2
этот код читает данные с USB. Это кусок который меня интересует.

Код:
// Setup the queue buffers 
byte[][] cmdBufs = new byte[QueueSize][];
byte[][] xferBufs = new byte[QueueSize][];
byte[][] ovLaps = new byte[QueueSize][];

byte j = 0;
for (j = 0; j < QueueSize; j++)
{
cmdBufs[j] = new byte[BufSize];
xferBufs[j] = new byte[BufSize];
ovLaps[j] = new byte[20];

fixed (byte* tmp0 = ovLaps[j])
{
OVERLAPPED* ovLapStatus = (OVERLAPPED*)tmp0;
ovLapStatus->hEvent = (uint)PInvoke.CreateEvent(0, 0, 0, 0);
}
}

// Pre-load the queue with requests 
int len = BufSize;

for (j = 0; j < QueueSize; j++)
InEndpoint.BeginDataXfer(ref cmdBufs[j], ref xferBufs[j], ref len, ref ovLaps[j]);
И можно было бы массив ovLaps объявить как OVERLAPPED сразу и без указателей, но ф-я BeginDataXfer требует ref byte[] ovLaps.
 
Статус
Закрыто для дальнейших ответов.