No se puede comunicar con éxito con el dispositivo USB HID usando writefile ()

Soy bastante nuevo en C #, así como en la programación de Windows y estoy intentando establecer una comunicación entre un dispositivo USB HID y una aplicación escrita en c # en una PC con Windows XP. He obtenido la ruta del dispositivo con éxito y la he usado para establecer un identificador válido en el dispositivo:

IntPtr drive = CreateFile(devicePath, GENERIC_READ | GENERIC_WRITE,
               FILE_SHARE_READ | FILE_SHARE_WRITE, IntPtr.Zero,
               OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, IntPtr.Zero);

Esto demostró ser un identificador válido que produce un número entero positivo cuando se prueba. Después de crear el identificador, llamo 'HidD_GetPreparsedData' y 'HidP_GetCaps' que producen una estructura previamente importada (HIDP_CAPS) que almacena datos específicos relacionados con el dispositivo conectado. A continuación, trato de llamar a writefile ():

bool success = WriteFile(drive, ref outputReportBuffer, 
               caps.OutputReportByteLength, ref numberOfBytesWritten, 
               IntPtr.Zero); 

unidad: el mango del dispositivo

outputReportBuffer: la matriz de bytes para escribir [65]

Caps.OutputReportByteLength: la cantidad de bytes que se deben escribir, mayúsculas es la estructura de HIDP_CAPS

numberOfBytesWritten: codificado a 0

IntPtr.Zero: Todo lo que he leído pasa este último parámetro como lo he hecho. En los parámetros formales de 'writefile', el último parámetro aparece como 'IntPtr ipOverlapped', pero no he podido averiguar qué es eso, excepto que se debería pasar como una forma de 0

Cómo se importa WriteFile:

[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool WriteFile(IntPtr hFile, 
ref byte[] lpBuffer, 
uint nNumberOfBytesToWrite,
ref uint lpNumberOfBytesWritten, 
IntPtr ipOverlapped);

Cuando se ejecuta el archivo de escritura, simplemente no hace nada. No obtengo ningún error, pero cuando se prueba, revela que la comunicación nunca se estableció y no tuvo éxito. Si alguien pudiera compartir algún conocimiento o proporcionar recursos para ayudar, realmente lo apreciaría. Gracias por leer.

Saludos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta