#define IOCTL_EVENT_MSG   CTL_CODE(FILE_DEVICE_UNKNOWN, 0x933, METHOD_BUFFERED , FILE_ANY_ACCESS)
HANDLE hcomm;
   hcomm=CreateFile("\\\\.\\Driver001",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,NULL);
   if(hcomm!=INVALID_HANDLE_VALUE)
   {
     char m_dwOptions[6]={'\0'};
     DWORD bytesWrite;
     m_dwOptions[0]='a';
     m_dwOptions[1]='b';
     m_dwOptions[2]='c';
     m_dwOptions[3]='d';
     m_dwOptions[4]='e';
     if(DeviceIoControl(hcomm ,IOCTL_EVENT_MSG,( char * )m_dwOptions,6,( char * )m_dwOptions, 5, &bytesWrite, NULL ))
     {
       CloseHandle(hcomm);
       return 1;
     }谢谢各位了!!!!

解决方案 »

  1.   

    var hcomm: THANDLE;
        m_dwOptions: array[0..6] of char;
        bytesWrite: DWORD;
    begin
       hcomm :=CreateFile('\\.\Driver001',GENERIC_READ or GENERIC_WRITE,0, nil,
        OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED, 0);
       if not (hcomm =INVALID_HANDLE_VALUE) then
       begin
         m_dwOptions[6] := #0;
         m_dwOptions[0] :='a';
         m_dwOptions[1] :='b';
         m_dwOptions[2] :='c';
         m_dwOptions[3] :='d';
         m_dwOptions[4] :='e';
         //IOCTL_EVENT_MSG
         if(DeviceIoControl(hcomm , 0, @m_dwOptions[0], 6, @m_dwOptions[0], 5, bytesWrite, nil )) then
         begin
           CloseHandle(hcomm);
           result := 1;
           //return 1;
         end;
     end;
      

  2.   

    OK谢谢aiirii(ari-爱的眼睛)了!!