Unsafe To Safe

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

Elephant

Как этот код будет выглядеть на 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]

Спасибо.
 
этот код читает данные с 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.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab