亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? deviceio.c

?? winNT技術操作系統,國外開放的原代碼和LIUX一樣
?? C
字號:
/* $Id: deviceio.c 21253 2006-03-08 21:33:04Z audit $
 *
 * COPYRIGHT:       See COPYING in the top level directory
 * PROJECT:         ReactOS system libraries
 * FILE:            lib/kernel32/file/deviceio.c
 * PURPOSE:         Device I/O and Overlapped Result functions
 * PROGRAMMER:      Ariadne (ariadne@xs4all.nl)
 * UPDATE HISTORY:
 *                  Created 01/11/98
 */

#include <k32.h>

#define NDEBUG
#include "../include/debug.h"


/*
 * @implemented
 */
BOOL
STDCALL
DeviceIoControl(IN HANDLE hDevice,
                IN DWORD dwIoControlCode,
                IN LPVOID lpInBuffer  OPTIONAL,
                IN DWORD nInBufferSize  OPTIONAL,
                OUT LPVOID lpOutBuffer  OPTIONAL,
                IN DWORD nOutBufferSize  OPTIONAL,
                OUT LPDWORD lpBytesReturned  OPTIONAL,
                IN LPOVERLAPPED lpOverlapped  OPTIONAL)
{
   BOOL FsIoCtl;
   NTSTATUS Status;

   FsIoCtl = ((dwIoControlCode >> 16) == FILE_DEVICE_FILE_SYSTEM);

   if (lpBytesReturned != NULL)
     {
        *lpBytesReturned = 0;
     }

   if (lpOverlapped != NULL)
     {
        PVOID ApcContext;

        lpOverlapped->Internal = STATUS_PENDING;
        ApcContext = (((ULONG_PTR)lpOverlapped->hEvent & 0x1) ? NULL : lpOverlapped);

        if (FsIoCtl)
          {
             Status = NtFsControlFile(hDevice,
                                      lpOverlapped->hEvent,
                                      NULL,
                                      ApcContext,
                                      (PIO_STATUS_BLOCK)lpOverlapped,
                                      dwIoControlCode,
                                      lpInBuffer,
                                      nInBufferSize,
                                      lpOutBuffer,
                                      nOutBufferSize);
          }
        else
          {
             Status = NtDeviceIoControlFile(hDevice,
                                            lpOverlapped->hEvent,
                                            NULL,
                                            ApcContext,
                                            (PIO_STATUS_BLOCK)lpOverlapped,
                                            dwIoControlCode,
                                            lpInBuffer,
                                            nInBufferSize,
                                            lpOutBuffer,
                                            nOutBufferSize);
          }

        /* return FALSE in case of failure and pending operations! */
        if (!NT_SUCCESS(Status) || Status == STATUS_PENDING)
          {
             SetLastErrorByStatus(Status);
             return FALSE;
          }

        if (lpBytesReturned != NULL)
          {
             *lpBytesReturned = lpOverlapped->InternalHigh;
          }
     }
   else
     {
        IO_STATUS_BLOCK Iosb;

        if (FsIoCtl)
          {
             Status = NtFsControlFile(hDevice,
                                      NULL,
                                      NULL,
                                      NULL,
                                      &Iosb,
                                      dwIoControlCode,
                                      lpInBuffer,
                                      nInBufferSize,
                                      lpOutBuffer,
                                      nOutBufferSize);
          }
        else
          {
             Status = NtDeviceIoControlFile(hDevice,
                                            NULL,
                                            NULL,
                                            NULL,
                                            &Iosb,
                                            dwIoControlCode,
                                            lpInBuffer,
                                            nInBufferSize,
                                            lpOutBuffer,
                                            nOutBufferSize);
          }

        /* wait in case operation is pending */
        if (Status == STATUS_PENDING)
          {
             Status = NtWaitForSingleObject(hDevice,
                                            FALSE,
                                            NULL);
             if (NT_SUCCESS(Status))
               {
                  Status = Iosb.Status;
               }
          }

        if (NT_SUCCESS(Status))
          {
             /* lpBytesReturned must not be NULL here, in fact Win doesn't
                check that case either and crashes (only after the operation
                completed) */
             *lpBytesReturned = Iosb.Information;
          }
        else
          {
             SetLastErrorByStatus(Status);
             return FALSE;
          }
     }

   return TRUE;
}


/*
 * @implemented
 */
BOOL
STDCALL
GetOverlappedResult (
  IN HANDLE   hFile,
	IN LPOVERLAPPED	lpOverlapped,
	OUT LPDWORD		lpNumberOfBytesTransferred,
	IN BOOL		bWait
	)
{
	DWORD WaitStatus;
  HANDLE hObject;

  if (lpOverlapped->Internal == STATUS_PENDING)
  {
    if (!bWait)
    {
      /* can't use SetLastErrorByStatus(STATUS_PENDING) here,
      since STATUS_PENDING translates to ERROR_IO_PENDING */
      SetLastError(ERROR_IO_INCOMPLETE);
      return FALSE;
    }

    hObject = lpOverlapped->hEvent ? lpOverlapped->hEvent : hFile;

    /* Wine delivers pending APC's while waiting, but Windows does
    not, nor do we... */
    WaitStatus = WaitForSingleObject(hObject, INFINITE);

    if (WaitStatus == WAIT_FAILED)
    {
      DPRINT("Wait failed!\n");
      /* WaitForSingleObjectEx sets the last error */
      return FALSE;
    }
  }

  *lpNumberOfBytesTransferred = lpOverlapped->InternalHigh;

  if (!NT_SUCCESS(lpOverlapped->Internal))
  {
    SetLastErrorByStatus(lpOverlapped->Internal);
    return FALSE;
  }

	return TRUE;
}

/* EOF */


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品影视| 久久女同性恋中文字幕| 奇米色777欧美一区二区| 亚洲精品一区二区三区蜜桃下载 | 极品少妇一区二区三区精品视频| 国产精品热久久久久夜色精品三区| 欧美三级午夜理伦三级中视频| 精品午夜一区二区三区在线观看| 曰韩精品一区二区| 国产亚洲女人久久久久毛片| 91 com成人网| 在线免费不卡视频| 丰满放荡岳乱妇91ww| 日韩av在线播放中文字幕| 亚洲精品视频在线看| 国产日产欧美一区二区视频| 欧美一区二区三区白人| 欧美亚洲免费在线一区| 波多野结衣91| 国产成人8x视频一区二区| 麻豆国产91在线播放| 午夜国产不卡在线观看视频| 亚洲欧美国产毛片在线| 欧美国产国产综合| 久久久精品蜜桃| 精品国产一区二区在线观看| 91精品国产91热久久久做人人| 色狠狠一区二区| 91天堂素人约啪| 日韩欧美国产电影| 91精品在线免费观看| 欧美色视频一区| 91久久免费观看| 日本高清不卡在线观看| 色94色欧美sute亚洲13| 一本一道波多野结衣一区二区| www.99精品| 91丝袜高跟美女视频| 99国产精品久久| 色欧美88888久久久久久影院| 99久久久精品| 91久久精品一区二区三区| 欧美视频自拍偷拍| 欧美喷潮久久久xxxxx| 欧美欧美午夜aⅴ在线观看| 欧美日韩国产影片| 欧美午夜精品久久久久久超碰 | 尤物在线观看一区| 日韩伦理电影网| 亚洲精品视频一区二区| 亚洲最大色网站| 午夜久久久影院| 日韩高清电影一区| 看片网站欧美日韩| 国产麻豆精品视频| 成人ar影院免费观看视频| gogo大胆日本视频一区| 色综合久久综合| 一区二区三区自拍| 午夜久久久影院| 国产在线麻豆精品观看| 成人黄页在线观看| 在线亚洲高清视频| 日韩欧美一二三区| 中文字幕欧美国产| 亚洲综合一区二区| 蜜桃精品在线观看| 成人午夜免费视频| 欧美性生交片4| 精品久久久久av影院 | 国产精品女同一区二区三区| 欧美国产精品一区二区三区| 亚洲乱码中文字幕综合| 天堂一区二区在线| 国产一区二区导航在线播放| 成人精品视频一区二区三区| 欧美在线观看视频一区二区| 日韩一区二区在线观看视频| 久久精品一二三| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 依依成人综合视频| 蜜臀av性久久久久av蜜臀妖精| 国产精品系列在线观看| 色综合久久99| 久久麻豆一区二区| 亚洲一区二区三区四区五区中文| 麻豆91免费看| 色综合天天综合网国产成人综合天| 欧美久久久久久久久| 欧美激情中文字幕一区二区| 亚洲超碰97人人做人人爱| 国产高清精品在线| 欧美喷潮久久久xxxxx| 国产精品福利一区| 美女看a上一区| 91福利国产精品| 久久精品一区八戒影视| 日韩影视精彩在线| 91香蕉视频黄| 麻豆精品新av中文字幕| 91麻豆精品视频| 久久久精品国产免费观看同学| 亚洲国产成人tv| 成人av免费在线观看| 欧美tickling网站挠脚心| 伊人色综合久久天天| 国产激情视频一区二区三区欧美| 6080午夜不卡| 亚洲精品写真福利| 成人动漫一区二区在线| 2019国产精品| 美日韩一级片在线观看| 欧美亚洲动漫精品| 亚洲视频免费在线观看| 成人免费黄色大片| 久久综合九色综合97_久久久| 欧美一二三区在线| 国产精品天干天干在线综合| 中文字幕中文字幕一区| 韩国女主播一区二区三区| 精品日韩欧美一区二区| 岛国av在线一区| 欧美精品一区二区三| 国内外成人在线视频| 久久久精品综合| 欧美午夜影院一区| 中文字幕一区二区三区在线播放 | 97成人超碰视| 久久嫩草精品久久久精品 | 欧美在线免费视屏| 亚洲免费高清视频在线| 99久久国产综合精品麻豆| 欧美极品xxx| 国产69精品久久久久毛片| 久久先锋影音av鲁色资源网| 黄页网站大全一区二区| 久久综合久久综合久久| 九九热在线视频观看这里只有精品| 欧美一区二区在线不卡| 奇米影视一区二区三区小说| 日韩午夜三级在线| 精品伊人久久久久7777人| 日韩一级在线观看| 久久99精品久久久久婷婷| 精品久久久影院| 国产一区二区导航在线播放| 欧美国产日本韩| 99国产精品99久久久久久| 亚洲男女毛片无遮挡| 欧洲精品在线观看| 日韩国产欧美在线观看| 97se狠狠狠综合亚洲狠狠| 欧美成人猛片aaaaaaa| 久久精品国产一区二区三区免费看| 91精品国产黑色紧身裤美女| 奇米精品一区二区三区在线观看一| 日韩一级免费一区| 91麻豆精品国产自产在线观看一区| 午夜欧美视频在线观看| 日韩免费福利电影在线观看| 经典三级在线一区| 欧美国产一区在线| 99久久夜色精品国产网站| 一卡二卡欧美日韩| 欧美一区二视频| 国产精品一卡二卡| 亚洲免费毛片网站| 337p亚洲精品色噜噜狠狠| 国产一区二区三区av电影| 国产精品入口麻豆原神| 欧美视频在线不卡| 精品写真视频在线观看| 亚洲伦理在线免费看| 日韩一卡二卡三卡四卡| 成人av免费在线播放| 五月综合激情网| 国产女人18毛片水真多成人如厕| 99re视频精品| 免费在线观看不卡| 18欧美乱大交hd1984| 8x8x8国产精品| 99精品久久只有精品| 日韩av在线发布| 最新日韩av在线| 成人午夜av影视| 中文字幕乱码一区二区免费| youjizz久久| 婷婷激情综合网| 国产日产欧美一区二区三区| 色综合久久中文字幕| 久久国产尿小便嘘嘘尿| ...中文天堂在线一区| 91精品国产综合久久久久久漫画| 极品销魂美女一区二区三区| 一区二区三区在线视频免费| 精品久久五月天| 日本伦理一区二区| 国产一区二区不卡在线| 一级特黄大欧美久久久| 国产日产欧美一区二区视频|